内容の保証はできません。


/System/Library/frameWorks/UIKit.framework

クラス UIScrollView

NSObject
  |
  +--UIResponder
      |
      +--UIView
          |
          +--UIScrollView

概要

UIScrollViewクラスはアプリケーションウインドウのサイズより大きなコンテンツを描画するクラスの基本クラスです。また、スワイプジェスチャーを生成してコンテンツをスクロールしたり、ピッチングジェスチャーを生成してコンテンツの拡大/縮小を有効にすることが出来ます。

UIScrollViewクラスはUITableViewクラスやUITextViewクラスなど、いくつかのUIKitクラスのスーパークラスとなっています。

UIScrollViewオブジェクト(または単にスクロールビュー)の中心概念は、原点が調整可能なコンテンツビューであることです。一般的にコンテンツは(必ずしもそうではないが)アプリケーションのメインウインドウに一致するフレームでクリップされます。スクロールビューは指の動きを追跡し、それに応じて原点を調整します。ビューにはスクロールビューを"介して"コンテンツビューのオフセットで固定された新たな原点を基準とするコンテンツの一部が描画されます。スクロールビューは垂直方向と水平方向のスクロールの指標を表示することを除けば、それ自身にコンテンツを描画することはありません。スクロールビューはコンテンツビューのスクロールを停止するためにそれのサイズを知っている必要があります。デフォルトでは、コンテンツの境界の限界を超えてスクロールしたら、"バウンス(弾む)"して境界に納まるように戻るようになっています。

スクロールビュー内に表示されるコンテンツの描画を管理するオブジェクトは、スクリーンサイズの限界を超えるビューが無い場合、コンテンツのサブビューをタイル化するべきです。そして、ユーザによってスクロールが行われた時に、このオブジェクトは必要に応じてサブビューを追加または削除するべきです。 

スクロールビューはスクロールバーを持っていないため、タッチの意図がスクロールであるのか、コンテンツビューのトラッキングイベントであるのかを判別しなければなりません。そのためタイマーを利用してタッチダウンイベントを一時的に傍受し指の動きを監視してタッチの意図を決定しています。タイマーが顕著な位置の変更なしに起動した場合、スクロールビューはトラッキングイベントを送信します。ユーザが十分時間が経過する前に指を動かした場合には、スクロールビューはサブビューのトラッキングをキャンセルしてスクロール処理を実行します。サブクラスは、スクロールジェスチャーをスクロールの処理に作用させるために、touchesShouldBegin:withEvent:inContentView:メソッドやpagingEnabledプロパティtouchesShouldCancelInContentView:メソッドをオーバーライドすることができます。

スクロールビューはコンテンツのズームやパンの処理も行います。ユーザのピッチインやピッチアウトジェスチャーに大して、コンテンツのオフセットやスケールを調整します。ジェスチャーの終了時にコンテンツビューはは必要に応じてサブビューを更新する必要があり、スクロールビューオブジェクトがこれを管理しています。(指を画面から話さないままジェスチャーを終了できる点に注意してください。)ジェスチャーが進行している間、スクロールビューはサブビューを呼び出して追跡することはありません。

UIScrollViewクラスはデリゲートにUIScrollViewProtocolを採用しなければなりません。ズームやパンを動作させるには、デリゲートはviewForZoomingInScrollView:メソッドとscrollViewDidEndZooming:withView:atScale:メソッドを実装しなければなりません。この時、最大(maximumZoomScaleプロパティ)、最小(minimumZoomScaleプロパティ)が異なるズームスケールである必要があります。

インデックス

コンテンツの描画の管理

– setContentOffset:animated:
contentOffset property
contentSize property
contentInset property

スクロールの管理

scrollEnabled property
directionalLockEnabled property
scrollsToTop property
– scrollRectToVisible:animated:
pagingEnabled property
bounces property
alwaysBounceVertical property
alwaysBounceHorizontal property
– touchesShouldBegin:withEvent:inContentView:
– touchesShouldCancelInContentView:
canCancelContentTouches property
delaysContentTouches property
decelerationRate property 3.0b以降
dragging property
tracking property
decelerating property

スクロールインジケータの管理

indicatorStyle property
scrollIndicatorInsets property
showsHorizontalScrollIndicator property
showsVerticalScrollIndicator property
– flashScrollIndicators

ズームとパンの設定

– zoomToRect:animated: 3.0b以降
zoomScale property 3.0b以降
– setZoomScale:animated: 3.0b以降
maximumZoomScale property
minimumZoomScale property
zoomBouncing property
zooming property
bouncesZoom property

デリゲートの管理

delegate property

プロパティ

alwaysBounceHorizontal

水平方向のスクロールがコンテンツの境界に達したとき、バウンド(跳ね返り)を発生させるかどうかを決定する。デフォルト値はNO。有効にするときはbouncesプロパティも有効である必要がある。

@property(nonaotmic) BOOL alwaysBounceHorizontal

alwaysBounceVertical

垂直方向のスクロールがコンテンツの境界に達したとき、バウンド(跳ね返り)を発生させるかどうかを決定する。デフォルト値はNO。有効にするときはbouncesプロパティも有効である必要がある。

@property(nonatomic) BOOL alwaysBounceVertical

bounces

スクロール時にコンテンツの境界に達したとき、バウンド(跳ね返り)を発生させるかどうかを決定する。デフォルトはYESで、NOの場合はバウンドせずコンテンツの境界でただちにスクロールが停止される。

@property(nonaotmic) BOOL bounces

bouncesZoom

最大最小の制限を超えてズームしたときにバウンド(跳ね返り)を発生させるかどうかを決定する。デフォルトはYESで、NOの場合はバウンドせずズームはその限界でただちに停止される。

@property(nonatomic) BOOL bouncesZoom

canCancelContentTouches

コンテンツビューがトラッキングをキャンセル可能であるかどうかを決定する。NOの場合、常時トラッキングが行われるためスクロール処理を行うことができなくなる。

@property(nonatomic) BOOL canCancelContentTouches

contentInset

スクロールビュー領域の周りに作るインセットを指定する。

@property(nonatomic) UIEdgeInsets contentInset

contentOffset

コンテンツビューの原点をスクロールビューの原点からのオフセットポイントで指定する。

@property(nonatomic) CGPoint contentOffset

contentSize

コンテンツビューのサイズを指定する。

@property(nonatomic) CGSize contentSize

decelerating

コンテンツがスクロール可能かどうかを返す。(読み取りのみ)
YESの時はコンテンツのドラッグは不可能である。

@property(nonatomic, readonly, getter=isDecelerating) BOOL decelerating

delaysContentTouches

スクロールビューのタッチダウンジェスチャーの処理を遅らせるかどうかを決定する。デフォルトはYES。

@property(nonatomic) BOOL delaysContentTouches

delegate

スクロールビューオブジェクトのデリゲートを指定する。

@property(nonatomic, assign) id<UIScrollViewDelegate> delegate

directionalLockEnabled

スクロールが無効であるかどうかを決定する。デフォルトはNO。

@property(nonatomic, getter=isDirectionalLockEnabled) BOOL directionalLockEnabled

dragging

ユーザがコンテンツのスクロールを開始したかどうかを返す。(読み取りのみ)

@property(nonatomic, readonly, getter=isDragging) BOOL dragging

indicatorStyle

スクロールインジケータのスタイルを指定する。

@property(nonatomic) UIScrollViewIndicatorStyle indicatorStyle

maximumZoomScale

ズームの最大倍率を指定する。

@property(nonatomic) float maximumZoomScale

minimumZoomScale

ズームの最小倍率を指定する。

@property(nonatomic) float minimumZoomScale

pagingEnabled

スクロールビューでパンが有効かどうかを決定する。

@property(nonatomic, getter=isPagingEnabled) BOOL pagingEnabled

scrollEnabled

スクロールが有効かどうかを決定する。

@property(nonatomic, getter=isScrollEnabled) BOOL scrollEnabled

scrollIndicatorInsets

スクロールインジケータのインセットを指定する。

@property(nonatomic) UIEdgeInset scrollIndicatorInsets

scrollsToTop

ステータスバーをタップした時にコンテンツのトップにジャンプするかどうかを決定する。

@property(nonatomic) BOOL scrollsToTop

showsHorizontalScrollIndicator

水平方向のスクロールインジケータが表示されるかどうかを決定する。

@property(nonatomic) BOOL showsHorizontalScrollIndicator

showsVerticalScrollIndicator

垂直方向のスクロールインジケータが表示されるかどうかを決定する。

@property(nonatomic) BOOL showsVerticalScrollIndicator

tracking

ユーザがコンテンツに触れているかどうかを返す。(読み取りのみ)

@property(nonatomic, readonly, getter=isTracking) BOOL tracking

zoomBouncing

ズームの倍率が指定された上限を超えているかどうかを返す。(読み取りのみ)

@property(nonatomic, readonly, getter=isZoomBouncing) BOOL zoomBouncing

zooming

現在ズームが行われているかどうかを返す。(読み取りのみ)

@property(nonatomic, readonly, getter=isZooming) BOOL zooming

インスタンスメソッド

flashScrollIndicators

一時的にスクロールインジケータを表示する。

- (void)flashScrollIndicators

scrollRectToVisible:animated:

レシーバのコンテンツを指定した範囲までスクロールして表示させる。

- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated

setContentOffset:animated:

レシーバの原点からコンテンツビューの原点のオフセットを指定する。

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated

touchesShouldBegin:withEvent:inContentView:

サブクラスでオーバーライドすることによって、コンテンツのデフォルトのタッチダウン動作をカスタマイズする。

- (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view

touchesShouldCancelInContentView:

指定したコンテンツビューに関連するタッチをキャンセルしてドラッグを開始させる。

- (BOOL)touchesShouldCancelInContentView:(UIView *)view

コンスタント

Scroll Indicator Style

スクロールインジケータのスタイルを決定する。

スタイル概要
UIScrollViewIndicatorStyleDefault基本スタイル。
UIScrollViewIndicatorStyleBlack基本スタイルより小さい黒色のスタイル。このスタイルは背景が白いコンテンツと相性がいい。
UIScrollViewIndicatorStyleWhite基本スタイルより小さい白色のスタイル。このスタイルは背景が黒いコンテンツと相性がいい。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-01-11 (火) 10:14:48 (2444d)