【发布时间】:2017-03-16 12:41:17
【问题描述】:
为了让我的 textView 根据内容调整其高度,我使用以下代码:
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
let contentSize = textView.sizeThatFits(textView.bounds.size)
self.textViewHeight.constant = contentSize.height
//textViewHeight is the height constraint of the textView defined in the storyboard.
return true
}
问题在于,当换行发生时,它确实识别出大小的变化。如果按回车键,则在添加另一个字符之前不会调整大小。如果您为它编写足够的文本来换行,也会发生同样的情况。只有在您放入另一个字符后,它才会调整大小。当您删除一个字符以删除一行时也会发生同样的情况,您必须删除另一个字符才能调整高度。我觉得这看起来很草率,因为 iMessage 和 Whatsapp 在您编写消息时不会共享此行为。
我在这里错过了什么?
【问题讨论】:
标签: ios swift3 autolayout uitextview line-breaks