5

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

如何同时检测滚动和用户触摸?

4

2 回答 2

12

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

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
   if (scrollView.dragging) {
      // scrolling is caused by user
   }
}
于 2012-05-01T17:23:02.817 回答
0

对于斯威夫特 5

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

还要确保在videoDidLoad()

于 2020-12-13T01:08:42.177 回答