UITextView.contentSize.height 为什么不工作如果不是可编辑或在 scrollEnabled Swift ?

标签: UITextView Swift
发布时间: 2016/5/8 10:33:02
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有 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:

在第一次我可以没有的权利,但如果你禁用了滚动然后你设置 contentSize.height 等于 view.height。

在第二次我不知道原因它的行为,但是,如果您修改代码,如 ︰

extView.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

你得到正确的内容的高度。我认为这样-然后你设置可编辑为 false 时,你也禁用一些选择将更改内容的大小

官方微信
官方QQ群
31647020