1

私はUIView呼び出された上で描画しpaintingViewており、スクロールビューからイメージビューをドラッグできます。しかし、これらのオブジェクトを直接 paintingView にドラッグするのではなく、UIView「over」と呼ばれる上にドラッグします。この「オーバー」には がuserinteractionenabled = NOあるので、この方法で問題なく描けます。

これが私の問題です。これらのオブジェクトを「オーバー」から離れるには、ジェスチャー(ダブルタップまたは長押し)を追加する必要があります。しかし、この「オーバー」にはuserinteractionenabled = NOジェスチャが機能しないため、これらのオブジェクトにジェスチャを追加する方法がわかりませんか?

4

2 に答える 2

1

「オーバー」ビュー用の UIView のサブクラスを作成し、 overwrite を作成しますhitTest:withEvent:

ドラッグされたビューに触れた場合は、それを処理し (ドラッグされたビューを返します)、それ以外の場合は を返し[super hitTest:withEvent:];ます。

(そしてuserInteractionEnabled再び電源を入れます)。

于 2012-06-11T17:01:06.303 に答える
0

または別のアイデア:

UITapGestureRecognizerタッチがドラッグされたビュー内にあるかどうか、paintingView に with minimumTouches: of two を配置してチェックします。その場合はこちらで処理してください。しかし、あなたはおそらくそのアプローチで偶然描いてしまうでしょう。

ダブルタップを自分で認識することもできます。おそらくすでに上書きtouchesBegan:などを行っているでしょう。そこでそれを認識し、「オーバー」ビューのサブビューを調べて、それが画像の境界内にあるかどうかを確認できます。もしそうなら、それを処理し、そのタッチのために描画しないでください.

于 2012-06-11T17:05:00.143 に答える