ユーザーがUIScrollViewをスクロールしていることを検出したい。scrollViewDidScrollは、そのときに呼び出されますが、別のときにも呼び出されます。ユーザーがビューを範囲外にスクロールしてから離すと、ビューは元の場所に戻ります。ユーザーがタッチしなくても、メソッドが呼び出されます。画面全体(ビューはそれ自体でスクロールされます)。
スクロールとユーザーのタッチを一緒に検出するにはどうすればよいですか?
ユーザーがUIScrollViewをスクロールしていることを検出したい。scrollViewDidScrollは、そのときに呼び出されますが、別のときにも呼び出されます。ユーザーがビューを範囲外にスクロールしてから離すと、ビューは元の場所に戻ります。ユーザーがタッチしなくても、メソッドが呼び出されます。画面全体(ビューはそれ自体でスクロールされます)。
スクロールとユーザーのタッチを一緒に検出するにはどうすればよいですか?
UIScrollView にはdragging
、スクロールがユーザーによって行われたかどうかを示すプロパティがあります。したがって、ユーザーがスクロールビューをスクロールするのか、スクロールが他の何か (アニメーションなど) によって引き起こされるのかを確認するには、次のようにします。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView.dragging) {
// scrolling is caused by user
}
}
スイフト5の場合
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView.isDragging {
print("Scroll View is scrolled by the user!")
}
}
また、スクロール ビュー デリゲートをそれ自体に割り当ててください。videoDidLoad()