我有UIView
类,并且在这个类中有UITextView
用作inputText
在第2行到第5行的textViewDidChange
中,使用任意中间字符或添加文字,我会根据需要添加UITextView
bounds.size.height
。
问题是在第3行和第5行中,第一行文本没有出现。 大约在其自身空间上方一行。 并且是从空白区域的底部创建的,无需滚动。
但是第四行中的文本具有确切的位置
class QuestionCell: UIView, UITextViewDelegate{
var paragraph = UITextView()
func setParagraph(){
let frame = CGRect(x: 50,
y: 0,
width: forground.width-55,
height: forground.height)
paragraph.frame = frame
paragraph.isEditable = true
paragraph.delegate = self
// forground is some UIView in this View
forground.addSubview(paragraph)
}
func textViewDidChange(_ textView: UITextView) {
paragraph.bounds.size.height = paragraph.paragraphHeight
}
}
extension UITextView{
var paragraphHeight: CGFloat{
let fixedWidth = self.width
let newSize = self.sizeThatFits(CGSize.init(width: fixedWidth,
height: CGFloat(MAXFLOAT)))
var newFrame = self.frame
newFrame.size = CGSize.init(width: CGFloat(fmaxf(Float(newSize.width),
Float(fixedWidth))),
height: newSize.height)
return newSize.height
}
}
答案 0 :(得分:1)
在创建过程中,您需要指定:
paragraph.isScrollEnabled = false
创建后,可以将其重新设置。