为什么UITextView.contentSize.height在Swift中不可编辑或scrollEnabled时不起作用?

时间:2016-01-09 10:00:39

标签: swift uitextview

我有一个像这样的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

我在这里做错了吗?

1 个答案:

答案 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,你也禁用一些会改变内容大小的选项