Ios7 iOS 7 UITextView-布局子视图无限循环

Ios7 iOS 7 UITextView-布局子视图无限循环,ios7,uitextview,autolayout,layoutsubviews,Ios7,Uitextview,Autolayout,Layoutsubviews,我认为: textView = [[UITextView alloc] init]; textView.scrollEnabled = NO; 我只有在iOS7上有问题: 在每次键盘击键时,都会在superview上调用LayoutSubView。在写了几个字符后,它陷入无限循环,并不断地调用layoutSubviews 当我删除textView.scrollEnabled=NO一行代码,一切都按预期的方式运行 我真的想禁用文本视图上的滚动。有人知道怎么做吗?最后,我在UITextView上做

我认为:

textView = [[UITextView alloc] init];
textView.scrollEnabled = NO;
我只有在iOS7上有问题:

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

当我删除
textView.scrollEnabled=NO一行代码,一切都按预期的方式运行


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

最后,我在UITextView上做了一个平移手势,把整个事情搞糟了。这样,编辑文本视图的所有功能都被保留,滚动被禁用。 当我想禁用文本视图的滚动时,我没有设置
scrolldenabled=NO
。相反,我在UITextView上添加了平移手势识别器。当我想启用滚动时,我只是从文本视图中删除了相同的平移手势识别器

像这样:

初始化方法

    _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];
        }
    }

很好;)

您是否在您的类中重写LayoutSubview?没有。我重写它只是为了证明我的怀疑,并将调用委托给super。这个问题很可能与这个问题有关: