2011-07-08 6 views
2

ここに問題があります: 私のアプリケーションでUIGestureRecognizerを使用することに移行したいと思います。 この理由から、私はTouchBegan/TouchEndedイベントを私の意見から取り除きたいと思っています。TouchesBeganをUIGestureRecognizerに置き換える方法

しかし、私はUIGestureRecognizersでタッチが始まったとき(ユーザーが指を画面に置いたとき)の管理方法を理解していません。

最も簡単なのはUITapGestureRecognizerですが、TapGestureが完了したときにのみ関連付けられたセレクタが起動します(まあまあまあまあです)。しかし、まだ問題は残っています:どのように私はtouchesBeganの使用をやめ、そのイベントをUIGestureRecognizerから得ることができますか?

ありがとうございます!

答えて

1

あなたは何をしようとしているのですか?ジェスチャーのレコジェナイザーはハイレベルのジェスチャーのため、すべてのアプリで同じように動作します(スワイプ、ダブルタップに必要なタイミングなど)。ローレベルの制御のためにとの認識機能は、あなたがまだなどtouchesbegan、touchesEnded、ここで

+0

この応答は完全に間違っています。以下のUIGestureRecognizerStateBeganで応答を確認してください。 – floydaddict

4

のロジックを実装する必要がありますすることができないことを行うためには例です:

//Pan gesture 
recognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)]; 
((UIPanGestureRecognizer *)recognizer).minimumNumberOfTouches = 3; //number of fingers 
recognizer.delegate = self; 
[self.view addGestureRecognizer:recognizer]; 

[recognizer release]; 

- (void)handlePan:(UIPanGestureRecognizer *)recognizer 
{ 
    if (recognizer.state == UIGestureRecognizerStateBegan) 
    { 
    //do something 
    } else if (recognizer.state == UIGestureRecognizerStateEnded) 
    { 
    //do something 
    } 
} 

また.hの中UIGestureRecognizerDelegateを実装ファイル。使用しているビューによってはself.view.userInteractionEnabled = YESを実行する必要があるかもしれません。それはUIImageViewだ場合、例えば、あなたがuserInteractionEnabledを設定する必要がある= YES、デフォルトはNO

0

されていないのはなぜUIGestureRecognizerサブクラスで独自のtouchesBeganを実装していない - 、メッセージを傍受あなたが好きな情報を抽出し、次に渡しますスーパーのtouchesに沿ってメッセージビーガン?

関連する問題