UIScrollView Reference
This article covers only scrolling-related content. Key UIScrollView Properties - : Returns YES when the user has touched but has not yet started dragging. - : Returns YES when the user has been scrolling for a short time or distance. - : Returns YES when the user has lifted their finger but the scroll view is still coasting. UIScrollView Delegate Methods - : Called whenever the changes by any means (user dragging, deceleration, or programmatic changes). Use this to monitor changes and adjust other views in response. - : Called when the user begins dragging the scroll view. May be called after a short delay or distance. - : Called when the user lifts their finger. represents the scroll speed, with positive/negative values indicating direction (up/down). is the position where scrolling will come to rest. Notably, is a pointer — you can modify the deceleration destination, which is very useful for implementing certain effects. Access or modify it via . - : Called after the user finishes dragging. If is YES, there will be a deceleration phase after the drag ends. Note: after , if there is a deceleration phase, is not immediately set to NO — it stays YES until deceleration ends. The actual semantic of the property is therefore closer to . - : Called just before the deceleration animation begins. - : Called when the deceleration animation ends. Special case: if the user drags the scroll view again before a deceleration animation has finished, will not be called, and at that point both and are YES. If the new drag has velocity, will be called again, followed by . If the new drag has no velocity, will not be called, but the left over from the previous deceleration will fire. - : Called when a programmatic scroll animation ends (via or ). This method is called if and only if an animation was involved. User Scroll Sequence User Touches Again During Deceleration Miscellaneous Detecting the user's scroll direction: References UIScrollView Best Practices Working with UIScrollView