【Objective-C】UIScrollViewのデリゲート、スクロール開始・中・停止、ズーム開始・中・停止まとめ【iOS11】

UIScrollViewはデリゲートメソッドが多く、どれを使えばいいのか迷いがちなので、デリゲートメソッドを「ドラッグによるスクロール」「ズーム」「その他」の3種類に分類し、それぞれのライフサイクルについてもまとめました。

もくじ

  1. スクロールした時に呼ばれるデリゲートメソッド
  2. ズームした時に呼ばれるデリゲートメソッド
  3. その他のデリゲートメソッド

1.タップ(ドラッグ)してスクロールをした時に呼ばれるデリゲートメソッド

スクロール時のデリゲートメソッドのライフサイクル

  1. – (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
    タップしスクロール開始
  2. – (void)scrollViewDidScroll:(UIScrollView *)scrollView
    スクロール中(画面に指が触れている状態)
  3. – (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
    タップ終了開始時
  4. – (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
    タップ終了時
  5. – (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
    慣性によるスクロール開始時
  6. – (void)scrollViewDidScroll:(UIScrollView *)scrollView
    スクロール中(画面から指が離れ、慣性によるスクロールになっている状態)
  7. – (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
    慣性によるスクロール停止時(完全停止)

スクロール時のデリゲートメソッド

 

2.ズームした時に呼ばれるデリゲートメソッド

ズーム時のデリゲートメソッドのライフサイクル

  1. – (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
    ズーム開始
  2. – (void)scrollViewDidZoom:(UIScrollView *)scrollView
    ズーム中
  3. – (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
    ズーム終了時

ズーム時のデリゲートメソッド

 

3.その他のデリゲートメソッド