我想动态更改UITextView的高度,但最多只能更改MAX_HEIGHT
个值。
我在textViewDidChange
委托中使用这样的代码:
CGSize contentSize = [_textView sizeThatFits:CGSizeMake(_textView.frame.size.width, FLT_MAX)];
CGFloat newHeight = ceilf(contentSize.height);
if (newHeight > MAX_HEIGHT)
{
_textView.scrollEnabled = YES;
return;
}
CGFloat currentHeight = _textView.keepHeight.equal.value;
CGFloat delta = newHeight - currentHeight;
_textView.keepHeight.equal = KeepNone;
_textView.keepHeight.equal = KeepRequired(newHeight);
最初,我使用_textView.scrollEnabled = NO
关闭滚动功能。
这样可以正常工作,直到它达到MAX_HEIGHT
并且我打开滚动。它根本不滚动,不显示新的行/字母。没有。
在调试器中,我看到内容大小始终为height = MAX_HEIGHT
,即使sizeThatFits
显示其他值也是如此。看起来好像冻结了。此外,如果我尝试更改代码中的内容大小值,它会在下一次委托调用中返回MAX_HEIGHT
。