UIscrollView DidScroll - 仅在触摸时

时间:2012-04-30 09:47:50

标签: objective-c uiscrollview

我想检测用户何时滚动UIScrollView。 当发生这种情况时会调用scrollViewDidScroll,但它会在另一个时间调用 - 当用户滚动视图超出范围,然后释放时,视图会跳回到它的位置 - 即使用户根本没有触摸屏幕也会调用该方法(视图自动滚动)。

如何检测滚动和用户一起触摸?

2 个答案:

答案 0 :(得分:10)

UIScrollView有一个属性dragging,用于指示滚动是否由用户完成。因此,要查看用户是否滚动滚动视图或滚动是否由其他内容(如动画)引起,您可以执行以下操作:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
   if (scrollView.dragging) {
      // scrolling is caused by user
   }
}

答案 1 :(得分:0)

对于 Swift 5

func scrollViewDidScroll(_ scrollView: UIScrollView) {
        if scrollView.isDragging {
            print("Scroll View is scrolled by the user!")
        }
    }

还要确保在videoDidLoad()

中为其分配滚动视图委托