使用AutoLayout将UITextView扩展到指定高度后重新启用它

mar*_*101 4 objective-c uitextview xcode6 ios8 ios-autolayout

我知道有一些类似的帖子,但它们似乎对我不起作用.

我有一个uitextview,我想表现得类似于messenging应用程序.

我使用autolayouts和[textview setScrollEnabled:NO]来允许uitextview在键盘上方动态扩展.当然,它会一直延伸到屏幕顶部.当它停止增长时,你无法看到任何其他文字.

我试图找到它在textViewDidChange内停止增长的高度并调用[textView setScrollEnabled:YES],但它在缩小之前缩小了初始大小.

如何在滚动到达某个高度或不再生长时启用滚动?

小智 6

到目前为止我发现的最佳解决方案是启用滚动并根据文本内容的大小更改textview的高度.

看起来像这样:

- (void)textViewDidChange:(UITextView *)textView
{
    self.consTextViewHeight.constant = MIN(MAX_HEIGHT, textView.contentSize.height + textView.textContainerInset.top);
}
Run Code Online (Sandbox Code Playgroud)