iOS Swift3 TextView 行在错误的位置
iOS Swift3 TextView line at wrong position
我有一个 textView,用作聊天消息的输入字段。如果文本多于一行无法容纳,我希望它展开。
func textViewDidChange(_ textView: UITextView) {
self.textViewHeight.constant = textView.contentSize.height
}
如果用户在 textView 中输入内容,我会以编程方式设置高度限制。
<- 对于一个衬里,它看起来不错。
<- 按回车后它会隐藏。
<- 第二次输入再次显示。
我在这里做错了什么?我尝试重新创建 whatsapp / imessage 的外观,其中不会发生这种隐藏。
这是因为您在错误的委托函数中更改了大小。完成编辑后调用委托 textViewDidChange
(调用 resignFirstResponder)。
您应该将更改高度的代码放入此函数中:
optional func textView(_ textView: UITextView,
shouldChangeTextIn range: NSRange,
replacementText text: String) -> Bool
所以这会在您键入时更改 UITextView
的高度,而不是在您完成键入之后。
我有一个 textView,用作聊天消息的输入字段。如果文本多于一行无法容纳,我希望它展开。
func textViewDidChange(_ textView: UITextView) {
self.textViewHeight.constant = textView.contentSize.height
}
如果用户在 textView 中输入内容,我会以编程方式设置高度限制。
我在这里做错了什么?我尝试重新创建 whatsapp / imessage 的外观,其中不会发生这种隐藏。
这是因为您在错误的委托函数中更改了大小。完成编辑后调用委托 textViewDidChange
(调用 resignFirstResponder)。
您应该将更改高度的代码放入此函数中:
optional func textView(_ textView: UITextView,
shouldChangeTextIn range: NSRange,
replacementText text: String) -> Bool
所以这会在您键入时更改 UITextView
的高度,而不是在您完成键入之后。