UIScrollView のスクロールが終了したことを検出する方法 質問する

UIScrollView のスクロールが終了したことを検出する方法 質問する

UIScrollViewDelegate には 2 つのデリゲート メソッドがありますscrollViewDidScroll:が、scrollViewDidEndScrollingAnimation:どちらもスクロールが完了したことを通知しません。scrollViewDidScrollスクロール ビューがスクロールしたことは通知しますが、スクロールが終了したことは通知しません。

他のメソッドは、scrollViewDidEndScrollingAnimationユーザーがスクロールした場合ではなく、プログラムでスクロール ビューを移動した場合にのみ実行されるようです。

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

ベストアンサー1

320 実装はるかに良くなりました - スクロールの開始と終了を一定にするためのパッチがここにあります。

-(void)scrollViewDidScroll:(UIScrollView *)sender 
{   
    [NSObject cancelPreviousPerformRequestsWithTarget:self];
    //ensure that the end of scroll is fired.
    [self performSelector:@selector(scrollViewDidEndScrollingAnimation:) withObject:sender afterDelay:0.3]; 

...
}

-(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
{
    [NSObject cancelPreviousPerformRequestsWithTarget:self];
...
}

おすすめ記事