フルスクリーン化で使用しているクラス(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)
鶴薗 賢吾、松浦 健一郎 他

商品詳細を見る






Wave SoundTouch music system IV
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
06 | 2017/07 | 08
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 31 - - - - -
Recent Articles
iTunes


Swift
Categories
Tips
Profile

水月杏香

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

Wish List
WACOM


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

Wave SoundTouch music system IV
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