我动态调整UITextView
的高度以及内容更改时嵌入的UITableViewCell
的高度。但我也可以粘贴预定义的文本。
由于这种粘贴以编程方式发生,问题是,在将选定的文本位添加到UITextView
的文本并调用我的UITableView
更新其单元格高度后,{{ 1}}尚未更新其contentSize,我用它来计算单元格的高度。
在我以编程方式向其添加文字后,有没有办法强制 UITextView 更新其 contentSize ?
答案 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