2010-12-02 11 views
2

ジェスチャが現在のビューの外で開始したときにタッチを検出する方法はありますか?ビューの外で開始したタッチを検出する

例:
私はタッチを検出する小さなビューを持っています。
ユーザーが画面上で指を動かすと、画面の外側から開始し、指を持ち上げることなく入ります。
フィンガーがビューに入ると、ビューはタッチイベントを取得しません。

答えて

1

pointInside:withEvent:を上書きしてください。ポイントは親ビュー内になければならず、子ビューが表示され、ユーザー対話が有効になっている必要があります。

+0

申し訳ありませんが、これで解決するとは思われません。どのビューにこれを設定する必要がありますか?子供か親ですか? –

+0

子ビュー - タッチを検出できるはずの領域のどこにでも座標があればYESを返します。 (あなたはいつもYESを返すことができ、ビューがタッチイベントを受け取るのを見る - あなたがuserInteractionEnabledをオンにしていることを確認します) – Ertebolle

+0

これは、指が別のビューに移動したときの問題を解決することがまだわかりません解除されずに、新しいビューはイベントに応答しません。 –

0

すべての画面をカバーするカスタム透明UIButtonを追加できる方法を覚えています。そして、別のビューの外に触れるとこのUIButtonイベントがトリガーされます。

+0

私はタッチが連続しているシナリオを見ています。外側から開始され、ビューにドラッグされました。 –

+0

私は考えがあります。すべての画面をカバーし、バックグラウンドにあるカスタムビューを使用して、カスタムビューにすべてのタッチイベントを担当させ、カスタムビューの上にあるターゲットビューに入るタッチを監視できますか。 – AechoLiu

+0

タッチがターゲットビューに入ると、カスタムビューは、tochesBegan:withEvent :, touchesMoved:withEvent:およびtouchesEnded:withEventメッセージを使用して、touchesイベントをターゲットビューにリダイレクトできます。 – AechoLiu

関連する問題