sizeWithFont:constrainedToSize:lineBreakMode:更改字体大小时无法正常工作

时间:2013-02-13 18:34:32

标签: uiscrollview uitextview uifont sizewithfont

我遇到一些UITextViews的问题。您可以选择更改我的应用程序中的字体大小,当您更改它时,它会重新加载内容并调整textview的大小,因为视图中有多个。我使用下面的代码进行调整大小,但它有时会返回正确的高度,但是当我更改应用程序中的文本大小时,它似乎会分解并返回不正确的高度,文本视图中的文本会被切断底部。有人能帮助我吗?

int height = [tempTextView.text sizeWithFont:
[UIFont fontWithName:fontFamily size:fontSizeF] 
constrainedToSize:CGSizeMake(300, 10000) lineBreakMode:
NSLineBreakByWordWrapping].height;

1 个答案:

答案 0 :(得分:1)

我知道这是一个老问题&迟到的答案,但它仍然非常相关,

现在不推荐使用这个sizeWithFont方法,这种新方法效果最好

NSString *content = **Whatever your label's content is expected to be**
CGSize maximumLabelSize = CGSizeMake(390, 1000);

NSDictionary *stringAttributes = [NSDictionary dictionaryWithObject:[UIFont systemFontOfSize:13] forKey: NSFontAttributeName];

CGSize newExpectedLabelSize = [content boundingRectWithSize:maximumLabelSize options:NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesLineFragmentOrigin attributes:stringAttributes context:nil].size;

因此您可以将标签(或表格单元格等)调整为

label.frame.size.height = newExpectedLabelSize.height;

我希望这有助于,欢呼,吉姆。