There is actually a very easy way to do resizing of the UITextView
to its correct height of the content. It can be done using the UITextView
contentSize
.
CGRect frame = _textView.frame;
frame.size.height = _textView.contentSize.height;
_textView.frame = frame;
One thing to note is that the correct contentSize
is only available after the UITextView
has been added to the view with addSubview
. Prior to that it is equal to frame.size
This will not work if auto layout is ON. With auto layout, the general approach is to use the sizeThatFits
method and update the constant
value on a height constraint.
CGSize sizeThatShouldFitTheContent = [_textView sizeThatFits:_textView.frame.size];
heightConstraint.constant = sizeThatShouldFitTheContent.height;
UITextView的高度和contentSize高度不一样.