objective-c - 在使用 AutoLayout 扩展到指定高度后重新启用 UITextView 滚动

标签 objective-c ios8 xcode6 uitextview ios-autolayout

我知道有一些类似的帖子,但它们似乎不适合我。

我有一个 uitextview,我希望它的行为类似于消息传递应用程序。

我使用自动布局和 [textview setScrollEnabled:NO] 允许 uitextview 在键盘上方动态扩展。当然,它会一直增长直到到达屏幕顶部。当它停止增长时,您将看不到任何其他文本。

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

当它达到一定高度或不能再增长时,如何启用滚动?

最佳答案

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

看起来像这样:

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

关于objective-c - 在使用 AutoLayout 扩展到指定高度后重新启用 UITextView 滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27272459/

相关文章:

ios - Swift 错误 - 调用 SimpleAuth 时的额外参数 'option'

ios - 强制 Nib 加载器使用 init?(带有 :) for custom subclass of NSObject in iOS

iphone - 在 XCode 中链接静态 ObjC 库的过程

objective-c - 确保初始化期间属性存在的最佳方法是什么?

ios - iPhone 6 和 6 plus 中的 TabBar

ios - 网站反复重新加载,然后在 iPhone 4 : iOS 8. 0.2 和 iOS 8.1.2 上崩溃

ios - 键盘不会关闭

ios - Objective-C 中的委托(delegate)级联和劫持委托(delegate)回调

ios - 在静态库中使用弱引用

Xcode 6 - 防止 swift playground 刷新