UIScrollViewクラス

2010. 11. 27
●概要

UIScrollViewクラスは、アプリケーションのウィンドウのサイズよりコンテンツが大きい場合、表示のサポートを提供します。

これにより、ユーザはコンテンツをスワイプのジェスチャでスクロールすることができ、ピンチングのジェスチャでコンテンツの一部を拡大/縮小することができます。

UIScrollViewは、UITableViewUITextViewを含むいくつかのUIKitクラスのスーパークラスです。

UIScrollViewオブジェクト(あるいは単純にスクロールビュー)の中心となる概念は、基本的にコンテントビューを調整するビューということです。

フレームにコンテンツをクリップする際、一般的には(必ずしもそうとは限りませんが)アプリケーションのメインウィンドウに一致させます。

スクロールビューは指の動きに追従して原点を調整します。

ビューはスクロールビューでの描画を介して新しい原点を元にその一部を表示し、コンテントビューのオフセットを固定します。

スクロールビュー自身は、垂直/水平方向のスクロールを示すインジケータ以外は描画しません。

スクロールビューはスクロールが停止することを知るため、コンテントビューのサイズを知っている必要があり、デフォルトではコンテントの矩形を超えるスクロールをした時に跳ね戻ります。

オブジェクトは、スクロールビュー内に表示するコンテンツの描画を管理し、コンテンツのサブビューがスクリーンのサイズを超えるビューにならないようにする必要があります。

スクロールビュー内でユーザがスクロールした際、オブジェクトは必要に応じてサブビューの追加や削除をする必要があります。

スクロールビューはスクロールバーを持たないため、タッチの信号がスクロールを意図しているかを感知し、それに対してコンテンツ内のサブビューを追従させる必要があります。

この決定を行うには、タイマーを開始させるタッチダウンイベントを一時的に停止し、タイマーが起動する前に指のタッチがどのような操作かを観察します。

タイマーが大きな位置の変更が無く起動した場合、スクロールビューはコンテントビュー内のサブビューがタッチされたとしてイベントの追跡を送信します。

ユーザがタイマーが経過する前に十分に指をドラッグした場合、スクロールビューはサブビュー内の追跡をキャンセルし、スクロールを実行します。

サブクラスは(スクロールビューによって呼び出される)touchesShouldBegin:withEvent:inContentView:pagingEnabledtouchesShouldCancelInContentView:メソッドをオーバーライドすることができ、スクロールビューをどのようにスクロールするかというジェスチャの処理に効果を与えられます。

またスクロールビューは、コンテンツのパンやズームも処理します。

ユーザがピンチ・イン/アウトのジェスチャを行うと、スクロールビューはコンテンツのスケールとオフセットを調整します。

ジェスチャが終了した時、オブジェクトが管理しているコンテントビューは、必要に応じてコンテンツのサブビューを更新する必要があります。
(指が降ろされているままでもジェスチャが終了することに注意してください)

ジェスチャが進行中の間、スクロールビューはサブビューへの追跡の呼び出しを送信しません。

UIScrollViewクラスはデリゲートを持つことができ、それにはUIScrollViewDelegateプロトコルを採用する必要があります。

ズームやパンを行うには、デリゲートはviewForZoomingInScrollView:scrollViewDidEndZooming:withView:atScale:両方を追加で実装する必要があり、ズームのスケールの最大値(maximumZoomScale)と最小値(minimumZoomScale)は異なっている必要があります。

重要:UIScrollViewオブジェクト内にUIWebViewUITableViewオブジェクトを埋め込む必要はありません。
これを行った場合、タッチイベントが2つのオブジェクトに対応することができず、適切ではない処理が行われた結果、予期しない動作が発生することになります。



●タスク

●コンテンツの管理と表示

– 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
  dragging    property
  tracking    property
  decelerating    property

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

  indicatorStyle    property
  scrollIndicatorInsets    property
  showsHorizontalScrollIndicator    property
  showsVerticalScrollIndicator    property
– flashScrollIndicators

●ズームとパン

– zoomToRect:animated:
  zoomScale    property
– setZoomScale:animated:
  maximumZoomScale    property
  minimumZoomScale    property
  zoomBouncing    property
  zooming    property
  bouncesZoom    property

●デリゲートの管理

  delegate    property



●プロパティ



●インスタンスメソッド

setContentOffset:animated:

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

レシーバの原点に対応する、コンテントビューの原点からのオフセットを設定します。

contentOffset:コンテントビューの原点からのオフセットを点で表します。

animated:YESの場合、新しいオフセットへ一定速度で移行するアニメーションを行い、NOの場合はすぐに移行します。



●定数



参考文献

UIScrollView Class Reference






bose_soundlink_revolve
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
03 | 2017/04 | 05
Sun Mon Tue Wed Thu Fri Sat
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
Recent Articles
iTunes


Swift
Categories
Tips
Profile

水月杏香

Author:水月杏香
永遠の初心者プログラマ。

Wish List
WACOM


ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
BOSE

bose_soundlink_revolve
Reference
NSApplicationDelegateプロトコル
NSArrayクラス
NSAutoreleasePoolクラス
NSBundleクラス
NSBundle UIKit追加分
NSCalendarクラス
NSCoderクラス
NSCodingプロトコル
NSCopyingプロトコル
NSDataクラス
NSDateクラス
NSDateFormatterクラス
NSDictionaryクラス
NSEntityDescriptionクラス
NSEnumeratorクラス
NSErrorクラス
NSExceptionクラス
NSFetchRequestクラス
NSFileHandleクラス
NSFileManagerクラス
NSIndexPathクラス
NSIndexPath UIKit追加分
NSKeyedArchiverクラス
NSKeyedUnarchiverクラス
NSKeyValueCodingプロトコル
NSLocaleクラス
NSManagedObjectクラス
NSManagedObjectContextクラス
NSManagedObjectModelクラス
NSMutableArrayクラス
NSMutableCopyingプロトコル
NSMutableDictionaryクラス
NSMutableSetクラス
NSNotificationクラス
NSNotificationCenterクラス
NSNullクラス
NSNumberクラス
NSObjectクラス
NSObject UIKit追加分
NSObjectプロトコル
NSPersistentStoreクラス
NSPersistentStoreCoordinatorクラス
NSPredicateクラス
NSPropertyListSerializationクラス
NSRunLoopクラス
NSSetクラス
NSStringクラス
NSString UIKit追加分
NSTimerクラス
NSTimeZoneクラス
NSURLクラス
NSURLProtectionSpaceクラス
NSURLRequestクラス
NSUserDefaultsクラス
NSValueクラス

UIActionSheetクラス
UIActionSheetDelegateプロトコル
UIActivityIndicatorViewクラス
UIAlertViewクラス
UIAlertViewDelegateプロトコル
UIApplicationクラス
UIApplicationDelegateプロトコル
UIBarButtonItemクラス
UIBarItemクラス
UIButtonクラス
UIColorクラス
UIControlクラス
UIDatePickerクラス
UIDeviceクラス
UIEventクラス
UIFontクラス
UIGestureRecognizerクラス
UIImageクラス
UIImageViewクラス
UIKit Function
UILabelクラス
UINavigationControllerクラス
UINavigationItemクラス
UIPickerViewクラス
UIPickerViewDataSourceプロトコル
UIPickerViewDelegateプロトコル
UIPinchGestureRecognizerクラス
UIResponderクラス
UIScreenクラス
UIScrollViewクラス
UISearchBarクラス
UISearchBarDelegateプロトコル
UISegmentedControlクラス
UISliderクラス
UISwipeGestureRecognizerクラス
UISwitchクラス
UITableViewクラス
UITableViewCellクラス
UITableViewControllerクラス
UITableViewDataSourceプロトコル
UITableViewDelegateプロトコル
UITapGestureRecognizerクラス
UITextFieldクラス
UITextFieldDelegateプロトコル
UITextInputTraitsプロトコル
UITextViewクラス
UITextViewDelegateプロトコル
UIToolbarクラス
UITouchクラス
UIViewクラス
UIViewControllerクラス
UIWebViewクラス
UIWebViewDelegateプロトコル
UIWindowクラス

AVAudioPlayerクラス
AVAudioPlayerDelegateプロトコル

CADisplayLinkクラス
CAEAGLLayerクラス
CALayerクラス

CGAffineTransform
CGBitmapContext
CGColor
CGColorSpace
CGContext
CGGeometry
CGImage
CGPath

EAGLContextクラス
EAGLDrawableプロトコル

Foundation Constants
Foundation Data Types
Foundation Functions

MPMediaItemクラス
MPMediaItemArtworkクラス
MPMediaPlaylistクラス
MPMediaPropertyPredicateクラス
MPMediaQueryクラス
MPMusicPlayerControllerクラス

Randomization Services

System Sound Services
Amazon


OpenGL ES
SQLite
Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Visitors
QR Code
QR