13

有没有办法知道字体允许的最大尺寸。

我在做

textInputTextView.font = [UIFont fontWithName:currentFontName size:doubleFontSize];
frame.size = textInputTextView.contentSize;

对于不同的字体,当doubleFontSize超过 70 时,我得到错误的 contentSize。对于某些字体,当doubleFontSize变量仅为 40 时,我得到错误的 contentSize。

我猜textView.font = doubleSizeFont对于那些特定的字体来说太大了。当字体大小在 10 到 30 之间时,一切正常。

有没有办法知道特定字体允许的最大尺寸?

细节:

我需要来自 UITextView 的图像。我正在使用 UIGraphicsGetImageFromCurrentImageContext图像生成正常。但我意识到图像质量很低。所以我试图使TextView框架和字体加倍。

当我用大字体写“我是个好孩子”时,如果是最合适的词。我得到“我是男孩”最右边的单词消失了我在图像的右侧得到了一些空白。多么悲惨 :)

4

2 回答 2

2

您可以使用以下代码计算内容的高度/宽度。然后调整框架的大小。这里我的宽度是固定的(290)并计算高度。

CGSize strSize= [DataToBeDisplayed sizeWithFont:[UIFont systemFontOfSize:17.0] constrainedToSize:CGSizeMake(290.0,99999.0)];
frame.size.height = strSize.height
于 2012-05-29T09:14:06.347 回答
1

我相信您遇到的问题是因为您使用的是UITextView。文本视图继承自UIScrollView,因此它不会减小字体的大小,只会调整其内容大小并使文本可滚动。

使用UITextField代替,它也继承自 UIView (因此可以用作图像),但允许更好的控制。将其大小固定为您希望它在屏幕上显示的最大值,然后使用[mylabel adjustsFontSizeToFitWidth:Y/N][mylabel setminimumfontsize:somefontsize]方法,如果输入的文本过多,请限制它。这将为您提供清晰的大字体并在输入时动态调整它

~/行尾

于 2012-07-10T15:10:00.433 回答