2017-05-08 4 views
0

ジェスチャーと階層に関する私の小さな問題の解決策が見つかりませんでした。あなたはそれがどのように見えるかを持っています:他のUIViewのUIGestureRecognizer

-superview 
--view A 
---objectViewA z UIGestureRecognizer 
--view B 
---objectViewB z UIGestureRecognizer 

最初のビューAとビューBは非表示です。ユーザーは彼が望むようにそれを隠す。 viewBがviewAをカバーしていないとき、私はobjectViewAを動かすことができますが、viewBを再表示するとobjectViewBを動かすことができますが、objectViewAはタッチを返しません。

私はshouldRecognizeSimultaneouslyWith代理人を追加しましたが、機能しません。それは何もしなかった。

この問題を解決するにはどうすればよいですか?私は嬉しいよ!

+0

'objectViewB'の' UIGestureRecognizer'が 'objectViewA 'で呼び出されたらどうしますか? – dirtydanee

+0

'objectViewA'と' objectViewB'は画面の周りを動くことができますが、 'objectViewA'は' viewB'の下にあります。私はすべてのオブジェクトAとBが動くことができるようにしたいです – Dzeremix

答えて

0

UIGestureRecognizerDelegateを使用して、viewBがジェスチャを処理するか、それを階層の下でviewAに渡す必要があるかどうかを判断できます。あなたはこのようなデリゲートメソッドを使用する必要が

https://developer.apple.com/reference/uikit/uigesturerecognizerdelegate

+0

私はすべてのジェスチャー代理人をスーパービューで持っています。残念ながら、objectViewAはどのタッチでも反応しません。 – Dzeremix

0

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{ 

     if ([touch.view isDescendantOfView:(Your View)]) { 
      return YES; 
      } 
      return NO; 
    } 

私はあなたに役立つことを願っています。

+0

残念ながら。背景のジェスチャーには触れられません:/ – Dzeremix

関連する問題