2016-04-05 48 views
0

私は、1本の指のジェスチャーを認識するカスタムジェスチャー認識子を備えたカスタム半透明のビューを持っています。全画面表示でポップアップ表示されます。ユーザーは、ピンチと回転のジェスチャーを使用して全画面表示と対話します。下のビューでジェスチャー認識を中断することなく、ポップアップビューでジェスチャーを認識する方法は?

私が達成しようとしているのは、ポップアップビューの境界内であっても、ポップアップビューが全画面表示をつまんで回転させるユーザーの能力を妨害しないようにすることです。ポップアップ表示は、私のカスタムのシングルフィンガージェスチャーレコグナイザーに応答する必要があります。

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event 
{ 
    if (event.allTouches.count > 1) { 
     return NO; 
    } 

    ... 
} 

私は上記のコードは、それを割ったかもしれないと思ったが、pointInsideが呼び出されたときに悲しげなタッチが移入されていません。他の提案はどうぞ?

答えて

0

です。私はそれが誰かを助けることを望む。ポップアップビューの初期化では、ポップアップの独自の表示ではなく、スーパービューまたは全画面表示にジェスチャ認識機能を追加するだけです。ターゲットは、まだポップアップ表示することができます:

self.recognizer = [[MyGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)]; 
    [fullscreenView addGestureRecognizer:self.recognizer]; 

[無効ユーザーとの対話:

self.userInteractionEnabled = NO; 

これがポップアップ表示上のジェスチャー、および関連付けられたジェスチャーには影響を与えません。ポップアップの下のビューも正常に機能します。彼らがお互いに競争すれば、lorenzolivetoの答えの上書きはそれを並べ替えることができます。

0

私はUIGestureRecognizerDelegateプロトコルが必要だと思います。特に、これらの方法では:

- gestureRecognizer:shouldReceiveTouch: 

- gestureRecognizer:shouldRequireFailureOfGestureRecognizer: 
- gestureRecognizer:shouldBeRequiredToFailByGestureRecognizer: 
+0

私はカスタムジェスチャー認識子の 'shouldReceiveTouch'に' NO'を返そうとしました。これにより、レコグナイザの起動は中止されますが、ポップアップビュー内のタッチは、下の全画面表示のジェスチャ認識子にはまだ届きません。 – Nestor

0

あなたは私はあなたがやりたいものは何でもできる状態に基づいて、タッチの何を持って、どこ私はtouchesBeganを使用していない方法

- (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; 

の下に使用することができます。

以下は、私は非常に単純な答えを見つけた2日間の作業の後、サンプルコード

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ 
//Varible used for counting touches 
     int nFingers += [touches count]; 
     //finger points 
     for (UITouch *touch in touches) { 
      if (nFingers < 1){ 
       CGPoint location = [touch locationInView:self]; 
      } 
     } 
    } 
関連する問題