iOS 7 UITextView - layoutSubviews无限循环

时间:2013-10-29 12:09:33

标签: ios7 uitextview autolayout layoutsubviews

我有UITextView:

textView = [[UITextView alloc] init];
textView.scrollEnabled = NO;

我只在iOS7上遇到问题:

在每次键盘击键时,在superview上调用layoutSubviews。写完几个字后,它会陷入无限循环,并不断调用layoutSubviews

当我删除textView.scrollEnabled = NO;代码行时,一切都按预期的方式工作。

我真的想在文本视图中禁用滚动。有人知道怎么做吗?

1 个答案:

答案 0 :(得分:0)

最后,我通过在UITextView上放置Pan Gesture来攻击整个事物。这样,编辑文本视图的所有功能都得以保留,并且滚动被禁用。 当我想禁用文本视图的滚动时,我没有设置scrollEnabled = NO。相反,我在UITextView上添加了Pan Gesture识别器。当我想启用滚动时,我只是从文本视图中删除了相同的Pan Gesture识别器。

像这样:

init方法......

    _scrollDisablerGR = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(textViewScrollAction:)];
// method textViewScrollAction does nothing, empty implementation
    [_textView addGestureRecognizer:_scrollDisablerGR];

代码中的其他地方:

if (shouldEnableScrolling) {
        [self.textView removeGestureRecognizer:_scrollDisablerGR];
    } else {
        if (!_scrollDisablerGR.view) {
            [self.textView addGestureRecognizer:_scrollDisablerGR];
        }
    }

效果很好;)