O'Reilly logo

Programming iOS 5, 2nd Edition by Matt Neuburg

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 20. Scroll Views

A scroll view (UIScrollView) is a view whose content is larger than its bounds. To reveal a desired area, the user can scroll the content by dragging or flicking, or you can reposition the content in code.

Think of the scroll view as consisting of two things:

The scroll view itself
The scroll view itself acts like a window (a window in a house, not a UIWindow). The scroll view’s bounds size is the size of that window.
The content
The content is the scene viewed through the window (the scroll view). The content is presumably larger than the scroll view, because otherwise there would be nothing to scroll. By sliding the content, a desired portion of it can be positioned within the scroll view and thus made visible.

Although it is useful to think of the scroll view in this way, the truth is far simpler. The scroll view isn’t really specially window-like; it’s just a view (whose clipsToBounds is usually YES). And the content isn’t really a separate thing; it’s just a set of parameters for positioning the scroll view’s subviews. When the scroll view scrolls, what’s really changing is the scroll view’s own bounds origin; the subviews are positioned with respect to the bounds origin, so they move with it. (See Chapter 14.)

However, a scroll view does bring to the table some nontrivial additional abilities:

  • It knows how to shift its bounds origin in response to the user’s gestures.
  • It provides scroll indicators whose size and position give the user a clue as ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required