我有一个像这样的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
我在这里做错了吗?
答案 0 :(得分:6)
如果我没错,您可以停用滚动,然后将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,你也禁用一些会改变内容大小的选项