我试图拥有一个类似于iPhone消息的文本视图,其中文本视图最初有一个约束(高度
这是该项目的链接:https://github.com/akawther/TextView https://github.com/akawther/TextView
文本视图的高度根据内容大小增加,如左图所示,直到达到高度 100,然后将scrollEnabled 设置为 true。它工作得很好,直到我单击右下角的“发送”按钮,其中 textView 应变为空并返回到原始高度,并且 scrollEnabled 变为 false。中间的图像显示了当我单击按钮时会发生什么。当我开始输入时,文本视图向下移动,如右侧最后一张图片所示。
我希望能够单击按钮并消除中间图像上显示的行为,如何解决此问题?
import UIKit
class ViewController: UIViewController, UITextViewDelegate {
@IBOutlet weak var bottomConstraint: NSLayoutConstraint!
@IBOutlet weak var messageTextView: UITextView!
@IBOutlet weak var parent: UIView!
let messageTextViewMaxHeight: CGFloat = 100
override func viewDidLoad() {
super.viewDidLoad()
self.messageTextView.delegate = self
}
@IBAction func Reset(sender: AnyObject) {
messageTextView.text = ""
messageTextView.frame.size.height = messageTextView.contentSize.height
messageTextView.scrollEnabled = false
self.parent.layoutIfNeeded()
}
func textViewDidChange(textView: UITextView) {
if textView.frame.size.height >= self.messageTextViewMaxHeight {
textView.scrollEnabled = true
} else {
textView.scrollEnabled = false
textView.frame.size.height = textView.contentSize.height
}
}
}
您可以按照 github 项目中的以下步骤复制我的问题:
1. 继续输入单词并按 Enter 键,直到开始看到滚动条
2.点击按钮你会看到textview变成蓝色
容器。这就是我要解决的问题!
尝试以下代码:-
@IBAction func Reset(sender: AnyObject) {
messageTextView.scrollEnabled = false
messageTextView.text = ""
messageTextView.frame.size.height = messageTextView.contentSize.height
parent.frame.size.height = 20
self.view.layoutIfNeeded()
}
func textViewDidChange(textView: UITextView) {
if textView.contentSize.height >= self.messageTextViewMaxHeight {
textView.scrollEnabled = true
} else {
textView.frame.size.height = textView.contentSize.height
textView.scrollEnabled = false
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)