Search code examples
iphonecocoa-touchiphone-sdk-3.0uiscrollview

Deactivate UIScrollView decelerating


Is there a way to deactivate the decelerating of a UIScrollView?

I want to allow the user to scroll the canvas, but I don't want that the canvas continues scrolling after the user lifted the finger.


Solution

  • This can be done by utilizing the UIScrollView delegate method scrollViewWillBeginDecelerating to automatically set the content offset to the current screen position.

    To implement:

    1. Assign a delegate to your UIScrollView object if you have not already done so.
    2. In your delegate's .m implementation file, add the following lines of code:

      -(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{  
          [scrollView setContentOffset:scrollView.contentOffset animated:YES];   
      }
      

    Voila! No more auto-scroll.