答案 0 :(得分:2)
最好的办法是将UITextField
更改为UITextView
。这是一个我喜欢使用这个自动调整技术的函数,你可以在Apples iMessage中看到:
func containerViewHeight() {
let size = textView.sizeThatFits(CGSize(width: textView.frame.size.width, height: CGFloat.greatestFiniteMagnitude))
containerView.heightAnchor.constraint(equalToConstant: size.height + 24)
self.textView.setContentOffset(.zero, animated: false)
}
您最初需要在viewDidLoad
:
override func viewDidLoad() {
self.containerViewHeight()
}
除此之外,您还需要通过在文件顶部对其进行子类化来符合UITextViewDelegate方法,如下所示:
class YourViewController: UIViewController, UITextViewDelegate
添加 AND 后,您在self.textView.delegate = self
内使用了viewDidLoad
:
override func viewDidLoad() {
self.textView.delegate = self
}
然后你就可以对textView使用textViewDidChange方法了,所以你要在课堂上添加的最后一件事是:
func textViewDidChange(_ textView: UITextView) {
self.containerViewHeight()
}
答案 1 :(得分:1)