iOS Swift3 TextView在错误的位置行

问题描述:

我有一个textView,我用它作为chatMessages的输入字段。如果文字多于一行,我希望它扩大。iOS Swift3 TextView在错误的位置行

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

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

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

enter image description here < - 按下输入键后,它会被隐藏起来。

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

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

这是因为您正在更改错误委托函数的大小。编辑完成后调用代理textViewDidChange(resignFirstResponder被调用)。

你应该把你的代码来改变高度在这个函数:

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

因此,这将改变UITextView的高度,你,你完成键入后键入没有。

+0

这工作正常除了按回车,它仍然被隐藏。它看起来像一条线断裂不被识别。你知道解决这个问题的方法吗? –

+0

您可以尝试放置一些边距,例如'self.textViewHeight.constant = textView.contentSize.height + 10' –