2010-11-23 3 views
2

これは、私は完全に困惑しています!問題:-(

私は表示/非表示のメニューのタップジェスチャー認識装置を持っている...

私はまた、スワイプのためのスワイプジェスチャー認識器を持っています左と右の画面間...

は、私は、その後も画面上でビデオを再生するためMPMoviePlayerControllerを持っている。

私はgestureRecognizer:shouldReceiveTouch:を実装し、すべてのUIコントロールを除外していますし、接頭辞「MP」を持つもの。

ムービープレーヤーのコントロールで左右にスワイプすると、shouldReceiveTouchはタップジェスチャーレコグニザーにのみ通知され、スワイプ通知には通知されません。また、NOを正しくトレースしていますが、スワイプメソッドを起動するとSTILLがスローされます。

私はgestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:otherGestureRecognizerを見てみましたが、それはUIPanGestureRecognizerも含まれているので、私は本当に混乱しています...それはどこから来たのですか?

助けてください、私は疲れていると、大きな期限を持っている...と:(

それをうまくすることはできませんあなたのすべてをありがとう

:!-Joe

答えて

1

さて、私は謝罪する必要があります...私はそのデリゲートを設定していませんでしたので、それがshouldReceiveTouchメッセージを受信して​​いなかった理由でした!!どのようなnumpty。私はタップジェスチャーのデリゲートを設定しましたが、スワイプジェスチャーのデリゲートは設定しませんでした。今それはすべて正常に動作しています。

大変申し訳ございません。 :-)

1

を私はいただきたいです同じ問題です 問題を解決するために私がしたこと [self doSomething ...]メソッドでアニメーションを行い、アニメーションが終了したら 認識器の有効状態をYESに戻します。 実際には、正しい認識装置を有効に戻しました!(彼女e私は (左/右)を持っているので、gestureRecognizers配列には2つのエントリがあります。

 
- (void)handleSwipeGesture:(UISwipeGestureRecognizer *)recognizer 
{ 
    if (recognizer.state == UIGestureRecognizerStateEnded && recognizer.enabled) { 
     recognizer.enabled = NO; 
     if (recognizer.direction == UISwipeGestureRecognizerDirectionLeft) 
     { 
      [self doSomethingInteresting]; 
     } 
     else { 
      [self doSomethingElseInteresting]; 
     } 
    } 
} 
 
[UIView transitionWithView:self.containerView 
      duration:kAnimationDuration 
      options:UIViewAnimationOptionTransitionCurlDown 
     animations:^{ your animations } 
     completion:^(BOOL finished) { 
       if (self.containerView.gestureRecognizers.count) { 
      ((UISwipeGestureRecognizer *)[self.containerView.gestureRecognizers objectAtIndex:0]).enabled = YES; 
} }]; 
+0

ありがとうございました。残念ながら、私はすでにアニメーション中にジェスチャ認識子を削除して、再度追加しています。実際には、「有効」プロパティを設定するのではなく、ビューを混乱させて、何らかの理由で完全に空白にするようにする必要があります。私は3.2ですので、残念ながらブロックを使用することはできません。しかし、問題は、私の "shouldReceiveTouch"デリゲートメソッドがスワイプ情報を受け取っていないという事実から来ているようです: – jowie

+0

ちなみに、スワイプの左私はそれを元にしようとしましたが、セレクタにメッセージを受け取ったとき、それがどの方向から来たのかを見つける方法が見つかりませんでした.requiredizer.directionは両方を返します... – jowie