我有一个像这样的UITextView:
var textView = UITextView(frame: CGRectMake(0,0,200,20)) textView.scrollEnabled = true textView.editable = true self.view.addSubview(textView)
那里没什么奇怪的
然后我想更新文本:
textView.text = "some short text"
如果我为它请求.contentSize.height我得到20
哪个是正确的如果文本更长并且有更多行:
textView.text = "some longer text\n another line\n one more line"
再次获得高度我得到75
的也是正确的.
但是一旦我使它不可编辑而且不可滚动它就会失败并且总是返回 20
textView.scrollEnabled = false textView.editable = false textView.text = "some short text" print(textView.contentSize.height) //prints 20 textView.text = "some longer text\n another line\n one more line" print(textView.contentSize.height) //prints 20
我有什么问题吗?
如果我没错,你可以禁用滚动然后设置contentSize.height
等于view.height
.
在第二个我不知道它的行为的原因,但如果你修改你的代码,如:
textView.editable = true textView.text = "some short text" print(textView.contentSize.height) //prints 20 textView.text = "some longer text\n another line\n one more line" print(textView.contentSize.height) //prints 20 extView.editable = false
你得到正确的内容高度.我想是这样 - 然后你将editable设置为false,你也禁用一些会改变内容大小的选项