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.