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 に答える