在触摸期间停止 UIScrollView 滚动

Posted

技术标签:

【中文标题】在触摸期间停止 UIScrollView 滚动【英文标题】:Stop UIScrollView scrolling during touch 【发布时间】:2013-07-08 18:48:30 【问题描述】:

有没有办法阻止UIScrollView 滚动同时按住触摸?使用 scrollViewDidScroll: 委托方法设置内容偏移量过多,可能会导致 GPU 出现一些问题(视图移动和快速重置),所以我希望有一个更简洁的解决方案,如果有的话。

【问题讨论】:

【参考方案1】:

你可以通过在 viewDidLoad..中使用它的属性 scrollEnabled 来简单地把它转出来。

self.myScrollView.scrollEnabled = NO;

【讨论】:

请注意:“在触摸过程中”【参考方案2】:

我会尝试:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
    [scrollView setScrollingEnabled:NO];


- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
    [scrollView setScrollingEnabled:NO];

按下它会关闭它,您可以调整检测“移动”与原始触摸的距离,以查看是否要重新启用滚动

【讨论】:

只有当视图被触摸时才会起作用。我正在询问当前正在触摸视图的时间。 啊,好吧,我以为触摸开始时仍然触发了长触摸我的坏。 它仅在触摸被移动或结束时触发。然而,setScrollingEnabled:NO 在禁用前视图移动时也会导致抖动动画。这与长触摸没有任何关系。感谢您的回复!

以上是关于在触摸期间停止 UIScrollView 滚动的主要内容,如果未能解决你的问题,请参考以下文章

触摸时暂停 UIScrollView 的滚动

如何在不丢失触摸事件的情况下冻结 UIScrollView 滚动

如何知道用户仍在 UIScrollView 中触摸屏幕?

防止重叠的 UIScrollView 滚动

UIScrollView:仅在允许时滚动

如何阻止 UIScrollView 吞下触摸