UIScrollViewの慣性スクロールをピタッと止める

幾つか方法があるようなんですけど、UIScrollViewDelegateのscrollViewWillEndDraggingかscrollViewWillBeginDeceleratingでcontentOffsetに現在の値を設定すれば止まってくれました。

//scrollViewWillBeginDecelerating


-(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
   //↓これで止まる	
   [scrollView setContentOffset:scrollView.contentOffset animated:NO];

}

//scrollViewWillEndDragging


- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
   //↓これで止まる	
   *targetContentOffset = scrollView.contentOffset;

}

ちょっと不思議なのは上記のようにscrollView.contentOffsetであれば止まってくれるのですが、
CGPointMake(scrollView.contentOffset.x, 0)
のように新たに生成したCGPointでは止まってくれないのです。
(最終的には指定した位置で止まるのですが、ピタッととまらない)

UIScrollViewの慣性スクロールをピタッと止める」への1件のフィードバック

  1. ピンバック: UIScrollViewを一方向だけにしかスクロールを許さない方法 | 目くじら日記

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です