2012年5月2日水曜日

GestureRecognizerを使用して複数のジェスチャを認識させる方法

GestureRecognizerはそのままの状態では複数のジェスチャを同時に認識させることはできませんがUIGestureRecognizerDelegateプロトコルのメソッドから動作を変更させることができます。

ヘッダーファイル
@interface ViewController : UIViewController
<
    UIGestureRecognizerDelegate
>


対象のUIViewにUIGestureRecognizerを追加してDelegateを設定します。
UILongPressGestureRecognizer *longGesture = [[UIGestureRecognizer alloc]
 initWithTarget:self action:@selector(handleLong:)];
    longGesture.minimumPressDuration = 1.0f;
    longGesture.delegate = self; // ←ココ
    [aImageView addGestureRecognizer:longGesture];
    [longGesture release];

そして gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: を実装することで動作を変更することができます。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
 shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}

とまぁこんな感じです。
同時に認識させること自体はそれほど難しいものでもありませんがこれをどう使うか組み合わせるかけっこう迷う。




0 件のコメント:

コメントを投稿