フルスクリーン化で使用しているクラス(1)

2010. 06. 17
スライドショーのフルスクリーン化で使用したクラスの概要を紹介します。


●UIViewクラス

UIViewクラスは主として抽象的なスーパークラスで、実際に描画やイベント処理を構成するサブクラスを提供します。

また、他のビューを含むUIViewのインスタンスを生成できます。

UIViewオブジェクトはUIWindowオブジェクトの中に配置され、サブビューの階層の中にネスト(入れ子)されています。

ビュー階層の親オブジェクトはスーパービューと呼ばれ、子はサブビューと呼ばれます。

ビューオブジェクトはスーパービュー内に矩形領域を要求し、領域内の全ての描画の責任を持ち、発生するイベントを受け取ります。

姉妹ビューは何の問題も無く重ねることができ、複雑なビュー配置が可能です。

UIViewクラスは、全てのビュータイプの生成に使用する共通メソッドと、プロパティへのアクセスを提供します。

例えばサブクラスが独自の指定イニシャライザを持っていない場合は、ビューの生成にinitWithFrame:メソッドを使用します。

frameプロパティはスーパービューの座標内にある、ビューの原点と座標を指定します。

全てのビューの座標系の原点は左上角になります。

また、ビューの位置とサイズの設定に、centerとboundsプロパティを使用することができます。

centerプロパティは、スーパービューの座標におけるビューの中心点を指定します。

boundsプロパティは、ビューの座標における原点とサイズを指定します。
(ビューの大きさがboundsのサイズより大きいとします)

frameプロパティは、centerとboundsプロパティ値を実際の基盤上の値として計算します。

したがって、これら3つのプロパティの設定は、他の値に作用します。

それは表示や向きが変わった時に、スーパービューの区域内に正確にビューを表示するため、ビューの自動リサイズのプロパティ設定にとって重要です。

特にUIViewのサブクラスでautoresizesSubViewsプロパティは使用され、サブビューを自動的にリサイズするかどうかを指定します。

autoresizingMaskプロパティは、どのようにビューを自動的にリサイズするかを、UIViewAutoresizingの定数で指定します。

UIViewクラスは、ビューの階層を管理するためのメソッドの番号を提供します。

階層内の親ビューの取得はsuperviewプロパティ、子ビューの取得はsubviewプロパティを使用します。

メソッドの番号は『Managing the View Hierarchy』にもあり、サブビューの追加、挿入、移動や、姉妹ビューの前面または背面の配置について記載されています。

UIViewのサブクラスとして、自身で描画するカスタムクラスを生成する場合、指定領域内のビューへ描画するdrawRect:メソッドを実装してください。

このメソッドは、ビューを最初に表示する、またはビューのフレームの一部が無効になり、内容の再描画を要求するイベントが発生した場合に呼び出されます。

通常、形状変更ではビューの再描画は要求されません。

したがってビューの外観を変更し、強制的に再描画をする場合は、setNeedsDisplayまたはsetNeedsDisplayInRect:をビューに送ります。

区域を変更する際に、UIViewContentModeRedrawにdrawRect:メソッドを呼び出すためにcontentModeを設定することもでき、それ以外の場合は、ビューは内容の再描画をせずに拡大縮小とクリッピングをします。

サブクラスは他のビューを含むこともできます。

この場合、指定イニシャライザinitWithFrame:をオーバーライドし、ビュー階層を生成します。

描画前にサブビューのレイアウトをプログラムで行う場合は、ビューにsetNeedsLayoutを送ります。

その後layoutIfNeededを呼び出し、表示する前にlayoutSubviewsを呼び出します。

サブクラスでサブビューの配置をカスタマイズするには、layoutSubviewsをオーバーライドします。

frame、bounds、center、transformプロパティなど、いくつかのプロパティはビューオブジェクトのアニメーションを変更することができます。

アニメーションブロック内のこれらのプロパティを変更すると、現在の状態から新しい状態にアニメーションで変化します。

アニメーションブロックはbeginAnimations:context:クラスメソッドを呼び出すと開始され、アニメーションのプロパティを設定し、そしてアニメーションブロックのcommitAnimationsクラスメソッドを呼び出すと終了します。

アニメーションは別のスレッドで実行され、開始するとアプリケーションの実行ループに戻ります。

他のアニメーションのクラスメソッドには、ブロックのアニメーションの制御として、開始時間、期間、遅延、カーブがあります。

イベント処理の発生とどこで発生したかを知るには、hitTest:withEvent:とpointInside:withEvent:メソッドを使用します。

UIViewクラスは、UIResponderから他のイベント処理メソッドを継承しています。

ビューのイベント処理に関する詳細は『UIResponder Class Reference』を参照してください。

ビューにジェスチャ認識を関連付けする場合は、ジェスチャを解釈できるオブジェクトをビューに作り、addGestureRecognizer:メソッドを呼び出す必要があります。
(ジェスチャ認識は、UIGestureRecognizerのサブクラスのインスタンスで行われます)

ジェスチャ認識を削除するにはremoveGestureRecognizer:メソッドを、ジェスチャ認識に関連付けされているビューを見つけるにはgestureRecognizersプロパティを使用します。

ジェスチャ認識は、iPhone OS 3.2で導入された機能です。

注:iPhone OS 3.0より前では、UIViewのインスタンスは最大1024 x 1024の高さと幅になっています。
iPhone OS 3.0以降では、ビューの最大サイズの制限はありませんが、メモリの消費量によって制限されます。
したがって最適な効果が得られるビューのサイズで、できるだけ小さくする必要があります。
またiPhone OSのバージョンに関係なく、1024 x 1024より大きいサイズのビューを生成する必要がある場合は、CATileLayerの使用を検討してください。



参考文献

UIView Class Reference

基礎からのiOS SDK基礎からのiOS SDK
(2010/10/09)
鶴薗 賢吾、松浦 健一郎 他

商品詳細を見る





0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
05 | 2018/06 | 07
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
詳解Swift第4版(01)〜Swiftでプログラミング
詳解Swift第4版(02)〜関数
詳解Swift第4版(03)〜構造体

詳解Swift第3版(01)〜Swiftでプログラミング
詳解Swift第3版(02)〜関数
詳解Swift第3版(03)〜構造体
詳解Swift第3版(05)〜基本的なデータ型
詳解Swift第3版(06)〜パターン
詳解Swift第3版(07)〜演算子
詳解Swift第3版(08)〜クラスと継承
詳解Swift第3版(09)〜メモリ管理
詳解Swift第3版(10)〜プロトコル
詳解Swift第3版(11)〜拡張
詳解Swift第3版(12)〜エラー処理
詳解Swift第3版(13)〜クロージャ
詳解Swift第3版(14)〜ジェネリクス

詳解Swift改訂版(01)〜Swiftでプログラミング
詳解Swift改訂版(02)〜関数
詳解Swift改訂版(03)〜構造体
詳解Swift改訂版(04)〜オプショナル
詳解Swift改訂版(05)〜基本的なデータ型
詳解Swift改訂版(06)〜パターン
詳解Swift改訂版(07)〜演算子
詳解Swift改訂版(08)〜クラスと継承
詳解Swift改訂版(09)〜メモリ管理
詳解Swift改訂版(10)〜プロトコル
詳解Swift改訂版(11)〜拡張
詳解Swift改訂版(12)〜エラー処理
詳解Swift改訂版(13)〜クロージャ
詳解Swift改訂版(14)〜ジェネリクス

詳解Swift(1)〜Swiftでプログラミング
詳解Swift(2)〜関数
詳解Swift(3)〜構造体
詳解Swift(4)〜オプショナル
詳解Swift(5)〜基本的なデータ型
詳解Swift(6)〜パターン
詳解Swift(7)〜演算子
詳解Swift(8)〜クラスと継承
詳解Swift(9)〜メモリ管理
詳解Swift(10)〜プロトコル
詳解Swift(11)〜拡張
詳解Swift(12)〜クロージャ
詳解Swift(13)〜ジェネリクス
詳解Swift(14)〜C/Objective-Cとのデータ受け渡し

文字列と文字(Swift 4)
Swift 2における文字列
Categories
Tips
WACOM


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


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
OpenGL ES
SQLite
Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
QR Code
QR
Profile

水月杏香

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

Visitors