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

2010. 06. 19
●UIResponderクラス

UIResponderクラスは、イベント処理とその応答に対するオブジェクトのインターフェイスを定義します。

UIApplicationおよび、UIViewを含むそのサブクラスのスーパークラスです。

これらのクラスのインスタンスは、レスポンダオブジェクトまたは単にレスポンダと呼ばれます。

一般的にイベントにはタッチイベントとモーションイベントの2つがあります。

主なタッチのイベント処理メソッドにはtouchesBegan:withEvent:、touchesMoved:withEvent:、touchesEnded:withEvent:、touchesCancelled:withEvent:があります。

これらのメソッドのパラメータはタッチによる(特に新規または変更の)イベントに関連付けされ、マルチタッチシーケンスのフェーズを介して、タッチ操作のイベントの経過について方法と処理をレスポンダオブジェクトに渡します。

指がスクリーンに触れたり、スクリーンをドラッグしたり、スクリーンから離したりした時に、UIEventオブジェクトが生成されます。

イベントオブジェクトは、スクリーンに指を乗せたり離したりした全てのUITouchオブジェクトを含みます。

iPhone OS 3.0では、デバイスのシェイクなど、モーションイベントを生成する機能がシステムに導入されています。

このようなイベント処理のメソッドには、motionBegan:withEvent:、motionEnded:withEvent:、motionCancelled:withEvent:があります。

iPhone OS 3.0ではcanPerformAction:withSender:メソッドが追加され、レスポンダはユーザインターフェイスの命令として、レスポンダチェイン内の直近のNSUndoManagerオブジェクトを返すundoManagerプロパティを有効にすることができます。


●NSSetクラス

NSSet、NSMutableSetとNSCountedSetクラスは、オブジェクトのセットを管理する、オブジェクトのプログラムインターフェイスを宣言します。

NSSetは、集合の数学的概念のサポートを提供します。

セットは数学的観念とNSSetの実装の両方の意味があり、要素の異なる順序無しの集合を指します。

NSSetのサブクラスであるNSMutableSetとNSMutableSetのサブクラスであるNSCountedSetクラスは、内容が変更できるセットを提供します。

NSSetとNSMutableSetはクラスクラスタの一部であり、セットは実際のNSSetまたはNSMutableSetのインスタンスではありません。

むしろインスタンスは、プライベートサブクラスの一つとして属しています。
(利便性のため、厳密なクラスの一員としてではなく、これらのインスタンスいずれかに属する条件のセットを使用します)

とはいえセットのクラスはプライベート、インターフェイスはパブリックで、NSSetとNSMutableSetは抽象的なスーパークラスとして宣言されています。

ただし、NSCountedSetはクラスクラスタの一部ではなく、NSMutableSetのサブクラスとして具現化されています。

NSSetは、静的なオブジェクトのセットのプログラムインターフェイスを宣言します。

静的なセットは生成時に情報を入力し、その後の情報入力の修正はできない規定になっています。

もう一方のNSMutableSetは、動的なオブジェクトのセットのプログラムインターフェイスを宣言します。

動的(または可変)セットは、いつでも情報入力の追加と削除をすることができ、メモリは必要に応じて自動的に確保します。

要素の順序が重要ではなく、セットに含めるオブジェクトの性能を考査した上で、セットの代わりに配列を使うこともできます。
(配列には順序があり、要素によってはセットより遅い場合があります)

セットのオブジェクトは、NSObjectプロトコルメソッドのhashとisEqual:に応答する必要があります。
(詳細は『NSObject』のプロトコルを参照してください)

セット内に可変オブジェクトを格納する場合、可変オブジェクトの内部状態にオブジェクトのhashメソッドが依存しない、またはセット内の可変オブジェクトを修正しないことに注意してください。
(集合内に可変オブジェクトを与えることはできますが、困難なことに注意してください)

セットに追加するオブジェクトはコピーではなく、セットへ追加する前にオブジェクトはretainメッセージを受け取ります。

通常、一時的なセットの生成には、NSSetクラスオブジェクトのset~メソッドの内のひとつを送ります。

これらのメソッドは、(もしあれば)引数を渡して、要素を含むNSSetオブジェクトを返します。

setメソッドは便利なメソッドで、空の可変セットを生成します。

セットクラスはNSCopyingとNSMutableCopyingプロトコルを採用し、もう一方のタイプのセットへの変換を容易に行えます。

NSSetは、セットの要素を問い合わせるメソッドを提供します。

allObjectsは、セット内のオブジェクトを含む配列を返します。

anyObjectは、セット内のいくつかのオブジェクトを返します。

countは、セット内の現在のオブジェクト数を返します。

member:は、指定したオブジェクトと同じセット内のオブジェクトを返します。

また、intersectsSet:はセットの積集合(2つのセット間の共通要素)かを分析、isEqualToSet:は同一性かを分析、isSubsetOfSet:は部分集合(あるセットがもう一つのサブセット)かを分析します。

objectEnumeratorメソッドは、セットの要素の順次走査を提供します。

Mac OS X v10.5以降ではより性能を向上した、Objective-Cを使った高速列挙が使用できます。

NSSetのmakeObjectsPerformSelector:とmakeObjectsPerformSelector:withObject:メソッドは、セット内の個々のオブジェクトにメッセージを送ることができます。

NSSetには『toll-free bridged』の対象としてCore FoundationのCFSet Referenceがあります。

これはFoudationオブジェクトを橋渡ししてCore Foundationの型に変換し、関数やメソッドで呼び出せることを意味します。

したがってNSSet *パラメータを参照する際、CFSetRefに渡し、CFSetRefパラメータとして参照でき、(コンパイラの警告を抑えるために型変換をして)NSSetインスタンスに渡すこともできます。

型変換に関する詳細は『Introduction to Carbon-Cocoa Integration Guide』を参照してください。


●UITouchクラス

UITouchオブジェクトは、スクリーン上の指の存在または動作を特定のイベントとして表します。

UITouchオブジェクトのアクセスは、UIEventオブジェクトを通して、イベント処理を行うレスポンダオブジェクトに渡されます。

UITouchオブジェクトは、タッチの発生したビューまたはウィンドウへのアクセスと、ビューまたはウィンドウのタッチされた特定の位置を取得するメソッドを含みます。

またタッチの発生や、ユーザが2回以上タップしたかどうか、指でのスワイプ(その場合の方向)、タッチの位相、ジェスチャの開始と動きと終了、キャンセルされたかなどを検出できます。

UITouchオブジェクトは、常時マルチタッチのシーケンスを継続しています。

イベントの処理をしている時は、UITouchオブジェクトを絶対に保持してください。

他の行程のタッチについての情報を保持する必要がある場合は、UITouchオブジェクトから情報をコピーしてください。

iPhone OS 3.2で導入されたgestureRecognizersプロパティは、タッチを現在処理している(実際にはUIGestureRecognizerのサブクラスの)インスタンスにジェスチャ認識を返します。



参考文献

UIResponder Class Reference

NSSet Class Reference

UITouch Class Reference

すぎゃーんメモ/NSSetのintersectsSetとNSMutableSetのintersectSet

算数・数学用語 Webilo辞書/積集合とは

算数・数学用語 Webilo辞書/部分集合とは

福井高専IT研究会OfficialWiki/UITouch

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

商品詳細を見る






Bose QuietComfort 20
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
08 | 2017/09 | 10
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 QuietComfort 20
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