【发布时间】:2018-08-15 17:36:17
【问题描述】:
我在 tableView 单元格中使用 UITextView 来保存不同大小的文本内容,并禁用滚动。
为了自动调整 UITextView 的大小,我使用了自动布局将其固定到布局中,并添加了此方法来调整高度:
override func viewWillAppear(_ animated: Bool) {
tableView.estimatedRowHeight = 50
tableView.rowHeight = UITableViewAutomaticDimension
}
这在初始视图上正常工作 - 当内容首次加载时。但是,我还希望用户能够在点击内容时编辑文本(类似于 Apple Reminders 应用程序)。这可以正常工作,但有一个限制:UITextView 不会随着内容的增长而扩展。
如何让 UITextView 在编辑过程中无需滚动即可展开?
新细节: 这是当前设置的屏幕截图。
根据以下 Matt 的建议,我创建了以下子类。
class MyTextView: UITextView {
@IBOutlet var heightConstraint : NSLayoutConstraint?
override func awakeFromNib() {
super.awakeFromNib()
self.heightConstraint?.isActive = false
}
}
我不得不修改强制展开以避免致命错误。
【问题讨论】:
-
我推荐使用github.com/KennethTsang/GrowingTextView 框架,效果很好
-
这看起来可以很好地解决问题,但我想做一些原生的事情。如果没有其他方法,我会这样做。谢谢。