I would like to be able to predict the final resting offset within a UIScrollView after a flick gesture. It doesn\'t need to be pixel-accurate, but close enough so that the
iOS5 UIScrollViewDelegate has a new method: scrollViewWillEndDragging:withVelocity:targetContentOffset:.
This fits perfectly with what you want to do.
This method is not called when the value of the scroll view’s pagingEnabled property is YES. Your application can change the value of the targetContentOffset parameter to adjust where the scrollview finishes its scrolling animation.
Change the UIScrollView's decelerationRate to UIScrollViewDecelerationFast and then in scrollViewDidEndDecelerating move to the closest "page".
The fast deceleration makes the complete stopping / sliding over a little more natural / less obnoxious.