使用boundingRectWithSize获取UITextView的高度:options:context

时间:2016-04-14 22:24:09

标签: ios

我为UITextView获得了错误的高度,即使我正在计算它的大小:

CGRect requiredHeight = [self boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX)
                                           options:(NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading)
                                           context:nil];

当我将高度添加到我的框架时,我可以看到所有文本,但不能看到最后一行。我不知道为什么。 (在我将其转换为HTML)之前,文字为NSAttributedString

1 个答案:

答案 0 :(得分:3)

所以,答案非常明显,但并不总是我们很容易看到这样的事情!

<强>说明

答案是,如果我们需要获取特定字段的高度(可能是label,textView等),我们应该使用这些字段中的方法来计算其高度,因为它们可能具有一些特定的属性,如果我们从文本计算高度(不考虑字段)我们没有考虑该字段可能具有的特殊属性。

简短回答:

如此简短的回答,对于UITextView你应该使用[textView sizeThatFits:]来获得它的高度,如果你不使用auto layout,这可能是最好的方法。

建议: 如果您可以轻松迁移用户界面,我建议您使用autolayout