iOS Swift3 TextView 行在错误的位置
Posted
技术标签:
【中文标题】iOS Swift3 TextView 行在错误的位置【英文标题】:iOS Swift3 TextView line at wrong position 【发布时间】:2017-03-16 02:12:26 【问题描述】:我有一个 textView,用作 chatMessages 的输入字段。如果文本多于一行,我希望它展开。
func textViewDidChange(_ textView: UITextView)
self.textViewHeight.constant = textView.contentSize.height
如果用户在 textView 中输入内容,我会以编程方式设置高度限制。
我在这里做错了什么?我尝试重新创建 whatsapp / imessage 的外观,这种隐藏不会发生。
【问题讨论】:
【参考方案1】:这是因为您在错误的委托函数中更改了大小。完成编辑后调用代理 textViewDidChange
(调用 resignFirstResponder)。
你应该把你的代码改为在这个函数中改变高度:
optional func textView(_ textView: UITextView,
shouldChangeTextIn range: NSRange,
replacementText text: String) -> Bool
所以这将在您输入时更改UITextView
的高度,而不是在您完成输入后。
【讨论】:
这工作正常,除了按回车,它仍然被隐藏。似乎无法识别一根断线。你也知道解决这个问题的方法吗? 你能试试像self.textViewHeight.constant = textView.contentSize.height + 10
这样的边距以上是关于iOS Swift3 TextView 行在错误的位置的主要内容,如果未能解决你的问题,请参考以下文章
Ios Swift3:lazy var fetchrequestcontroller 显示错误
在 iOS 中,带有属性文本的 textview 的高度有时是错误的
iOS 键盘和 textview 错误 - “使用未声明的变量”
如何在 Swift 3 中将 NSConstraints 添加到 UITextView