7章スクロールビュー
スクロールビュー(UIScrollView)は表示領域(bounds)より大きいコンテンツをもったビューです。見たい領域を表示させるために、ユーザーがドラッグやフリックでコンテンツをスクロールさせることもできますが、プログラム内でコンテンツの位置を変更することもできます。
スクロールビューの構成要素は以下のふたつであると考えられます。
- スクロールビュー自体——スクロールビュー自体は窓(「ウィンドウ」ではなく「窓」)のように振る舞います。スクロールビューのboundsのサイズが窓のサイズになります。
- コンテンツ——コンテンツとは窓(スクロールビュー)を通して見る内容のことです。コンテンツはスクロールビューより大きいものです。小さければスクロールする必要がありません。コンテンツをスライドさせることで、望む位置をスクロールビューの中にもってきて、表示できるようになっています。
スクロールビューをこのように考えるとたしかにわかりやすいのですが、実際はもっとずっと単純です。スクロールビューは特別に窓に似せて設計されているわけではなく、単なるビューです(clipsToBounds
はYESになっているのが普通です)。コンテンツも別に特殊なものではなく、スクロールビューのサブビューの位置を決める引数の組みにすぎません。スクロールビューがスクロールする際に変化しているのはスクロールビュー自体の境界(bounds)の原点です。サブビューは境界の原点を基準として配置されますので、原点とともに移動します(1章参照)。
しかし、スクロールビューには重要な追加機能があります。
- ユーザーのジェスチャに合わせて境界の原点を移動させる
- コンテンツの大きさと現在の表示位置を反映したスクロールインジケータを提供する ...
Get 詳解 iOS SDK 第4版 ―ワンランク上のiPhone/iPadプログラミング now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.