12

我正在动态调整 aUITextView的高度以及UITableViewCell它在其内容更改时嵌入的高度。但我也有能力粘贴预定义的文本位。

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

在我以编程方式向它添加文本之后,有没有办法强制UITextView更新它的contentSize ?

4

2 回答 2

22

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

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

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

于 2014-04-17T22:04:12.110 回答
3

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
于 2015-04-07T16:59:10.463 回答