2014-04-17 34 views
9

我動態調整UITextView的高度以及UITableViewCell在其內容更改時嵌入的高度。但我也有能力粘貼預定義的文本位。UITextView不會更新它的contentSize

由於這種粘貼發生編程,問題是,在添加所選文本位到UITextView的文字和打電話給我UITableView更新其細胞的高度之後,UITextView尚未更新了contentSize,我用來計算細胞的高度。

有沒有辦法強制的UITextView更新其contentSize,之後我編程方式添加文字呢?

+0

對於未來的觀衆,我相信這個問題的真正答案是'textView.sizeToFit()'。我在Swift 2.0中使用它,它可以完美工作,就像@dkaisers所要求的一樣,只要你使用AutoLayout。 – kbpontius

回答

19

您可以使用sizeThatFits:來獲得正確的大小。

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

這裏是一個流行的開源組件,它利用了它的基礎上TextView的內容,從而實現動態調整:  https://github.com/HansPinckaers/GrowingTextView

+1

謝謝,這完美的作品! – dkaisers

2

斯威夫特版本的答案:

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

這如果您想要更新UITextView

的超級視圖,代碼段也可能會派上用場。
相關問題