タッチイベントの処理 |
タッチイベントが発生すると、_Canvas/_Canvas3D クラスを継承したクラスの _processEvent:: メソッドが呼び出されます。このメソッドの中で、イベントのタイプとパラメータを識別してください。_processEvent:: メソッドの記述例は次のようになります。
- (void)_processEvent:(int)type :(int)param { switch( type ) { case TOUCH_DOWN_EVENT: // タッチされた break; case TOUCH_MOVE_EVENT: // ムーブした break; case TOUCH_UP_EVENT: // タッチが離された break; } } |
イベントのタイプは、TOUCH_DOWN_EVENT/TOUCH_MOVE_EVENT/TOUCH_UP_EVENT の3種類で、パラメータは、タッチIDです。
タッチイベントXY値は、_Canvas/_Canvas3D クラスの getTouchX:/getTouchY: メソッドで取得できます。
レイアウトタッチイベントの処理 |
setLayout: メソッドでレイアウトを適用している場合、レイアウトタッチイベントが発生するようになり、_Canvas/_Canvas3D クラスを継承したクラスの _processEvent:: メソッドが呼び出されます。_processEvent:: メソッドの記述例は次のようになります。
- (void)_processEvent:(int)type :(int)param { switch( type ) { case LAYOUT_DOWN_EVENT: // レイアウトがタッチされた break; case LAYOUT_UP_EVENT: // レイアウトのタッチが離された break; } } |
イベントのタイプは、LAYOUT_DOWN_EVENT/LAYOUT_UP_EVENT の2種類で、パラメータは、レイアウトIDです。
タッチされているレイアウトの判別 |
イベント検知以外に、タッチされているレイアウトを判別する方法があります。_Canvas/_Canvas3D クラスの getLayoutState メソッドを使用する方法です。使用例を示します。
int layout = [self getLayoutState]; if( (layout & (1 << 2)) != 0 ) { // レイアウトIDが 2 のレイアウトが押されている } |