展开 UITextView 然后在某个点后滚动
Expand UITextView and then scroll after certain point
我一直在努力设置创建这个,我在这里阅读了很多帖子,但不明白我做错了什么。
我有一个UITextView
。
我希望它的高度扩展到一个数字,然后在启用滚动的情况下固定在该高度。
我设置了 UITextFieldDelegate
并添加了以下内容 -
func textViewDidChange(_ textView: UITextView) {
let newSize = textView.sizeThatFits(CGSize(width: 0, height: CGFloat.greatestFiniteMagnitude))
textView.frame.size = CGSize(width: 0, height: min(100, newSize.height))
}
这样做可以让 保持增长。
我现在希望它停止并滚动,例如,高度为 100。
func textViewDidChange(_ textView: UITextView) {
let newSize = textView.sizeThatFits(CGSize(width: 0, height: CGFloat.greatestFiniteMagnitude))
let newHeight = min(100, newSize.height)
textView.frame.size = CGSize(width: 0, height: newHeight)
textView.isScrollEnabled = newHeight >= 100
}
此时发生的所有事情是当 isScrollEnabled
设置为 true
时滚动视图缩小。
我的 textView 仅锚定到其父级的 top
、leading
和 trailing
。
如何在启用滚动后强制它不折叠?
编辑
我添加了以下有效的内容,但是在固定高度状态下输入任何内容时,文本似乎 'wobble'
func textViewDidChange(_ textView: UITextView) {
let newSize = textView.sizeThatFits(CGSize(width: 0, height: CGFloat.greatestFiniteMagnitude))
let newHeight = min(100, newSize.height)
textView.frame.size = CGSize(width: 0, height: newHeight)
if newHeight >= 100 {
textView.isScrollEnabled = true
textView.heightAnchor.constraint(equalToConstant: 100).isActive = true
} else {
textView.isScrollEnabled = false
textView.heightAnchor.constraint(equalToConstant: 100).isActive = false
}
}
最好做一个默认高度约束并连接它的出口并使用它的常量
self.txH.constant = newHeight
self.view.layoutIfNeeded()
我一直在努力设置创建这个,我在这里阅读了很多帖子,但不明白我做错了什么。
我有一个UITextView
。
我希望它的高度扩展到一个数字,然后在启用滚动的情况下固定在该高度。
我设置了 UITextFieldDelegate
并添加了以下内容 -
func textViewDidChange(_ textView: UITextView) {
let newSize = textView.sizeThatFits(CGSize(width: 0, height: CGFloat.greatestFiniteMagnitude))
textView.frame.size = CGSize(width: 0, height: min(100, newSize.height))
}
这样做可以让 保持增长。
我现在希望它停止并滚动,例如,高度为 100。
func textViewDidChange(_ textView: UITextView) {
let newSize = textView.sizeThatFits(CGSize(width: 0, height: CGFloat.greatestFiniteMagnitude))
let newHeight = min(100, newSize.height)
textView.frame.size = CGSize(width: 0, height: newHeight)
textView.isScrollEnabled = newHeight >= 100
}
此时发生的所有事情是当 isScrollEnabled
设置为 true
时滚动视图缩小。
我的 textView 仅锚定到其父级的 top
、leading
和 trailing
。
如何在启用滚动后强制它不折叠?
编辑
我添加了以下有效的内容,但是在固定高度状态下输入任何内容时,文本似乎 'wobble'
func textViewDidChange(_ textView: UITextView) {
let newSize = textView.sizeThatFits(CGSize(width: 0, height: CGFloat.greatestFiniteMagnitude))
let newHeight = min(100, newSize.height)
textView.frame.size = CGSize(width: 0, height: newHeight)
if newHeight >= 100 {
textView.isScrollEnabled = true
textView.heightAnchor.constraint(equalToConstant: 100).isActive = true
} else {
textView.isScrollEnabled = false
textView.heightAnchor.constraint(equalToConstant: 100).isActive = false
}
}
最好做一个默认高度约束并连接它的出口并使用它的常量
self.txH.constant = newHeight
self.view.layoutIfNeeded()