UITextView不会更新其contentSize

时间:2014-04-17 20:45:39

标签: ios objective-c uitableview uitextview contentsize

我动态调整UITextView的高度以及内容更改时嵌入的UITableViewCell的高度。但我也可以粘贴预定义的文本。

由于这种粘贴以编程方式发生,问题是,在将选定的文本位添加到UITextView的文本并调用我的UITableView更新其单元格高度后,{{ 1}}尚未更新其contentSize,我用它来计算单元格的高度。

在我以编程方式向其添加文字后,有没有办法强制 UITextView 更新其 contentSize

2 个答案:

答案 0 :(得分:20)

您可以使用sizeThatFits:来获得正确的尺寸。

CGFloat height = ceilf([textView sizeThatFits:textView.frame.size].height);

这是一个流行的开源组件,它利用它来实现基于textview内容的动态调整大小: https://github.com/HansPinckaers/GrowingTextView

答案 1 :(得分:2)

Swift版的答案:

var newTextViewHeight = ceil(textView.sizeThatFits(textView.frame.size).height)
textView.frame.size.height = newTextViewHeight

如果您想要更新UITextView

的超级视图,这段代码也会派上用场
textView.superview?.frame.size.height = textView.contentSize.height + 10