UITextView不更新其contentSize

我dynamic地调整UITextView的高度,以及UITableViewCell在其内容改变时所embedded的高度。 但我也有能力粘贴预定义的文本位。

由于这个粘贴是以编程的方式发生的,问题是,在将所选文本位添加到UITextView的文本并调用我的UITableView来更新其单元高度后, UITextView还没有更新其contentSize,我用它来计算单元高度。

有没有办法强制UITextView更新其contentSize ,我编程添加文本后?

你可以使用sizeThatFits:来获得正确的大小。

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

这里是一个stream行的开源组件,利用它来实现基于textview内容的dynamicresize: https : //github.com/HansPinckaers/GrowingTextView

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