1. ホーム
  2. ios

[解決済み] UIScrollViewがスクロールを終了したことを検出する方法

2022-04-24 01:31:47

質問

UIScrollViewDelegateは2つのデリゲートメソッドを持っています。 scrollViewDidScroll:scrollViewDidEndScrollingAnimation: が、どちらもスクロールが完了したことを教えてはくれません。 scrollViewDidScroll は、スクロールビューがスクロールしたことを通知するだけで、スクロールが終了したことを通知するわけではありません。

もうひとつのメソッド scrollViewDidEndScrollingAnimation は、ユーザーがスクロールした場合ではなく、プログラムによってスクロールビューを移動させた場合にのみ発生するようです。

スクロールビューのスクロールが完了したことを検出するスキームをご存知の方はいらっしゃいますか?

どのように解決するのですか?

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    [self stoppedScrolling];
}

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
    if (!decelerate) {
        [self stoppedScrolling];
    }
}

- (void)stoppedScrolling {
    // ...
}