我正在做聊天模块的工作。我正在使用TextView发送消息,但是当文本超出textview高度时,textView不会滚动感染TextView文本区域中显示的文本。
我正在使用此代码扩展文本视图内容区域。
private let kMessageViewWidths = CGFloat(UIScreen.main.bounds.size.width - 168)
func textViewDidChange(_ textView: UITextView) {
self.setTextViewSizeWithContent()
}
func setTextViewSizeWithContent() {
let newSize = self.calculateSize(chatTextView: self.messageTF, chatText: self.messageTF.text, withFixedSize: kMessageViewWidths)
self.messageViewHeightConstraint.constant = newSize.height
self.view.layoutIfNeeded()
}
func calculateSize(chatTextView: UITextView, chatText: String, withFixedSize: CGFloat) -> CGSize {
let textView = UITextView()
textView.text = chatText
textView.frame = chatTextView.frame
textView.font = chatTextView.font
textView.tag = chatTextView.tag
let fixedWidth = withFixedSize
textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.greatestFiniteMagnitude))
var newSize = textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.greatestFiniteMagnitude))
var newFrame = textView.frame
newFrame.size = CGSize(width: max(newSize.width, fixedWidth), height: chatTextView.contentSize.height)
newSize.height = newSize.height + CGFloat(30)
if newSize.height > 100 {
newSize.height = 100
}
return newSize
}
我做错了什么?
答案 0 :(得分:0)
尝试更改textView的框架,而不是更改高度约束。
您必须计算新的y位置。请记住,当您更改视图的高度但保持恒定的y位置时,视图会向下移动。
getActivity().onBackPressed();