2012-02-25

UIScrollViewに余白を設定する

今日は、UIScrollViewをいじっています。これまでに自分でViewに追加した経験がないので、はっきり言って使い方がいまいち分かっていません。簡単なサンプルプログラムをつくりながら理解を深めていく計画です。

UIScrollViewを使って今回実現したいことは、スクロールして表示するコンテンツの外に余白をつくることです。このとき重要なプロパティが二つあります。ひとつはcontentSize、もう一つはcontentInsetです。
contentSizeは、UIScrollviewに表示したいコンテンツの大きさです。たとえば、500x500ピクセルの写真を表示する場合は、contentSizeを500x500に設定することになります。そして、contentInsetというのが、contentSizeの上や下にスクロール可能な領域を広めるために使うプロパティになります。
なので、UIScrollViewの外側に余白をつくるには、contentInsetを設定してやればそれでミッション完了です。
次のようにして設定します。

      scrollView.contentInset=UIEdgeInsetsMake(50.0, 30.0, 44.0, 0);

これで、上に50.0、左に30.0、下に44.0、右に0の余白ができます。

しかし、このままだとスクロールビューの中での現在の表示位置を示すインジケータが余白部分も加味して表示されてしまいます。これが好ましくない場合は、scrollIndicatorInsetsを使って調整します。たとえば、こんな具合です。

      scrollView.scrollIndicatorInsets=UIEdgeInsetsMake(50.0, 30.0, 44.0, 0);

こうしてやれば、余白部分を考慮せずに、コンテンツ内での位置をインジケータで示すことができます。多くの場合には、contentInsetとscrollIndicatorInsetsに同じ値を設定することで望ましい挙動が得られるのではないかと思われます。

0 件のコメント: