2016-11-03 19 views
-1

ビューでこの種類のタッチイベントに応答したい:ビューの外側にタッチしてドラッグします。 UIControlEventTouchDragEnter、UIControlEventTouchDragInside、UIGestureなどのiOS UIControlEventを使用しようとしましたが、これを直接行うことはできません。 最後に、独自の方法で実装します。UIViewのカスタムサブクラスを作成し、メソッド(UIView *)hitTest:(CGPoint)withEvent:(UIEvent *)イベントを上書きし、レスポンダチェーンまでタッチイベントを転送します。 touchesBegan、touchesMoved、touches親ビューのEndedメソッド、UITouchオブジェクトの位置を使用して、ビューの外にあるタッチを判断してドラッグします。 私はこの方法に満足していません。誰かがそれを解決するより効率的でエレガントな方法を教えてくれる人がいますか?あなたの時間と配慮に心から感謝します。ビューの外側にタッチし始めてドラッグするタッチイベントに応答する方法

答えて

1

はあなたの最初のタッチダウンがビューの外に、それが関連付けられていないされている場合ので、「エレガント」あなたはこれより多くを行うことはできません

それを入力して表示し、ドラッグの外でタッチダウンを開始しますこの見解は決してありません。タッチの最初のヒットテストで関連付けられているビューがあれば、の場合は常にのように表示され、タッチイベントはジェスチャー全体で表示され、タッチイベントはそのビューにのみ送信されます。ヒットテストのデフォルトの定義は、最初のタッチが,であるビューがヒットテストビューであり、仮説によって、ではなく、ビューであることです。

+0

あなたの答えをありがとう。 – user1651560

関連する問題