Download presentation
Presentation is loading. Please wait.
1
第8回 iPhoneアプリ開発勉強会 マルチタッチ 鷲見政明
2
タッチイベント取得のための前準備 UIViewクラスを使用 NSObject UIResponder UIView メンバ変数
NSMutableArray *touchPoints // タッチしたポイントを保持する領域へのポインタ イニシャライザ self.multipleTouchEnabled = YES; // マルチタッチを許可 touchPoints = [[NSMutableArray alloc] init]; // タッチしたポイントを保持する領域を確保 class図
3
タッチイベント取得メソッド UIResponderクラスの以下のメソッドをオーバーライド
- (void)touchesBegan(NSSet *)touches withEvent(UIEvent *)event; - (void)touchesMoved(NSSet *)touches withEvent(UIEvent *)event; - (void)touchesEnded(NSSet *)touches withEvent(UIEvent *)event; - (void)touchesCancelled(NSSet *)touches withEvent(UIEvent *)event; - (void)touchesEnded… 指が離れたとき - (void)touchesMoved… 指が動いたとき - (void)touchesCancelled… タッチ操作中に着信時などに発生 - (void)touchesBegan… 指が触れたとき
4
タッチイベントの取得 タッチ取得イベントの実装 ポイント情報の取得
- (void)touchesBegan(NSSet *)touches withEvent(UIEvent *)event { // タッチしたポイントを領域に格納 [touchPoints addObjectsFromArray: [touches allObjects]]; } - (void)touchesEnded(NSSet *)touches withEvent(UIEvent *)event // ポイントを領域から削除 [touchPoints removeObjectsFromArray: [touches allObjects]]; ポイント情報の取得 1つのUITouchオブジェクトが1本の指に対応 for (int i = 0; i < [touchPoints count]; i++) { UITouch *aTouch = [touchPoints objectAtIndex: i]; … }
5
タッチイベントの取得 タッチ取得イベントの実装
- (void)touchesMoved (NSSet *)touches withEvent(UIEvent *)event { // 列挙体に変換 NSEnumerator *touchEnm = [touches objectEnumerator]; UITouch *aTouch; // 指の数分情報を取得 while ( aTouch = [touchEnm nextObject] ) { int index = [touchPoints indexOfObject: aTouch]; … } }
6
iPhone simulatorでのデバッグ
マルチタッチのシミュレーションを行うことが可能 ※ option + マウス操作 ※ 3つ以上のタッチを試す場合には実機が必要
7
おわりに 本日の内容 マルチタッチ Next Work GPS
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.