0

アプリの画面上にオーバーレイを作成しようとしています。理想的には、オーバーレイは、ユーザーがオーバーレイの下のビューを操作できるようにしながら、タップ ジェスチャを受け取ります。

プロパティをNOに設定することで、ビューを「タップスルー」できることを私は知っています。userInteractionEnabledこれにより、ユーザーは問題のビューの下にあるビューを操作できます。

self.overlay.userInteractionEnabled = NO;

ただし、これにより、オーバーレイ ビューでのタップ ジェスチャも無効になっているように見えます。iOS5以降、ビュー間でタッチを渡すことができることをどこかで読みました。これにより、オーバーレイ ビューでジェスチャをキャプチャして処理し、オーバーレイの下のビューに渡して、「タップ スルー」オーバーレイの印象を作成することが可能であると私は信じています。

iOS5のビューとタッチを共有するジェスチャ認識機能、または私が説明しているようなオーバーレイのようなコントローラーの方向に誰かが私を向けることができますか?

私が説明していることを達成する別の方法がある場合は、知っておくとよいでしょう。

情報をありがとう!

4

2 に答える 2

0

以下をジェスチャ認識エンジンに追加します。

[recognizer setCancelsTouchesInView:NO]

"ジェスチャが認識されたときにタッチがビューに配信されるかどうかに影響するブール値。 "

于 2013-03-30T21:15:00.740 に答える
0

最終的には、すべてのコンテナー ビューを調べて、いずれかのフレーム内でタップが発生したかどうかを判断し、そのタッチに対処することになりました。これは非常に効率的なソリューションではありませんが、機能します。

for(UIView* container in self.view.subviews)
{

    location = [gestureRecognizer locationInView:container];

    frame = container.frame;
    location = [gestureRecognizer locationInView:container.dummyZoomView];
    foundTappableObject = CGRectContainsPoint(frame, location);
   //do whatever with the view which was tapped

 }
于 2013-04-01T04:20:42.227 に答える