最后,我通过在 UITextView 上放置一个 Pan Gesture 来破解整个事情。这样,编辑文本视图的所有功能都被保留,并且滚动被禁用。当我想禁用文本视图的滚动时,我没有设置scrollEnabled = NO
. 相反,我在 UITextView 上添加了 Pan Gesture 识别器。当我想启用滚动时,我只是从文本视图中删除了相同的平移手势识别器。
像这样:
初始化方法...
_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];
}
}
效果很好;)