iOS Swift3 TextView线位于错误位置

时间:2017-03-16 02:12:27

标签: ios swift autolayout uitextview uitextviewdelegate

我有一个textView,我用它作为chatMessages的输入字段。如果文本中的文本多于一行,我希望它能够扩展。

func textViewDidChange(_ textView: UITextView) {
    self.textViewHeight.constant = textView.contentSize.height
}

如果用户在textView中输入内容,我会以编程方式设置高度约束。

enter image description here< - 对于一个衬里,它看起来很好。

enter image description here< - 按Enter后,它会被隐藏。

enter image description here< - 第二个输入再次显示出来。

我在这里做错了什么?我尝试重新创建whatsapp / imessage的外观,这种隐藏不会发生。

1 个答案:

答案 0 :(得分:2)

这是因为您正在更改错误的委托功能中的大小。完成编辑后调用委托textViewDidChange(调用resignFirstResponder)。

您应该使用代码来改变此函数的高度:

optional func textView(_ textView: UITextView, 
    shouldChangeTextIn range: NSRange, 
       replacementText text: String) -> Bool

因此,在您输入完成后,这将改变UITextView的高度。