我如何防止一个自调整大小的UITextView从增长超过一个特定的点(键盘顶部锚,例如)?



我有一个UITextView,它会根据用户的文本输入自动增长。

我想防止UITextView的底部锚在键盘下,或者我想自动滚动视图本身作为用户输入文本,这使得textview超过键盘的顶部(去键盘下,如果你愿意),这样他们正在输入的视图可以显示,而键入发生。有什么建议吗?

我应该在视图控制器中配置一个滚动视图吗?

我的当前代码是:

let textView: CustomTextView = {

///Set bio Box text view:
let field = CustomTextView()

field.textColor = .label
field.layer.borderWidth = 1
field.layer.cornerRadius = 10
field.font = Fonts.createSize(14)
field.keyboardAppearance = .default
field.tintColor = Colors.mainBrandColor
field.placeholderLabel.text = "Tell us about yourself..."
field.layer.borderColor = UIColor(named: "customTopColorControl")?.cgColor

field.translatesAutoresizingMaskIntoConstraints = true
field.sizeToFit()
field.isScrollEnabled = false
return field
}()
///Setup text view:
func setupTextView() {
addSubview(textView)
textView.anchor(
top: titleLabel.bottomAnchor,
left: leftAnchor,
bottom: inputAccessoryView?.topAnchor,
right: rightAnchor,
paddingTop: 20,
paddingLeft: 20,
paddingBottom: 0,
paddingRight: 20,
width: 0,
height: 0)
}
///Adjusts the textview to fit the size of the text within it:
func adjustUITextViewHeight(textView: UITextView) {
textView.translatesAutoresizingMaskIntoConstraints = true
textView.sizeToFit()
textView.isScrollEnabled = false
}

一个简单的解决方案是给textView一个高度约束。设置textView的isScrollEnabled属性为false。允许它生长,直到它到达键盘原点(您必须以编程方式检查这一点)。一旦到达键盘原点,将高度固定,并将isScrollEnabled属性设置为true

相关内容

最新更新