如何知道给定字体名称允许的最大字体大小?

时间:2012-05-22 05:54:14

标签: objective-c ios

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

我在做

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

对于不同的字体,当 doubleFontSize 超过70时,我的内容错误。对于某些字体,当 doubleFontSize 变量只有40时,我的内容错误。

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

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

详细说明:

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

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

2 个答案:

答案 0 :(得分:2)

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

CGSize strSize= [DataToBeDisplayed sizeWithFont:[UIFont systemFontOfSize:17.0] constrainedToSize:CGSizeMake(290.0,99999.0)];
frame.size.height = strSize.height

答案 1 :(得分:1)

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

使用 UITextField ,它也继承自UIView(因此可以用作图像),但允许更好的控制。将其大小修改为您希望在屏幕上显示的最大值,然后使用[mylabel adjustsFontSizeToFitWidth:Y/N][mylabel setminimumfontsize:somefontsize]方法,如果输入的文本太多,则限制它。这将产生一个清晰的大字体,并在输入时动态地适应它

〜/行结束