1

ここで一例を挙げると、( ARC を使用)

        UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onTap:)];

        [subView1 addGestureRecognizer:tapGesture ];
        [subView2 addGestureRecognizer:tapGesture];

問題は次のとおりです。

subView1 は tapGesture に応答しませんが、subView2 は応答します。

subview2 から tapGesture を削除すると、subView1 が機能します。

メモリ管理の観点から内部で何が起こっていますか? 上記のコードが機能するように設計してみませんか?

4

1 に答える 1

3

iOS に含まれる標準のジェスチャ レコグナイザーは、一度に 1 つのビューにしか接続できないと確信しています。それを明示的に述べているものは見つかりませんが、UIGestureRecognizerクラスを見ると、次のview説明のプロパティがあります。

ジェスチャ レコグナイザがアタッチされているビュー。(読み取り専用)

したがって、addGestureRecgnizer:既にビューにアタッチされている場合、リコナイザーのアタッチが解除されると思います。

于 2012-06-10T08:56:39.393 に答える