( ) を持つ( ) の上に透明UIView
( と呼びますreceiver
) を重ねています。UIScrollView
scrollView
UIScrollViewDelegate
scrollViewDelegate
状況によっては、receiver
着地するタッチ イベントを消費する必要があります。他の方法では、いくつかの位置情報を収集してから、タッチ イベントをそのまま渡すか、scrollView
代わりに、ドラッグの動きを構成し、適切な減速などをもたらすイベントをスプーフィングする必要があります。どうすればこれを達成できますか?
編集 - これまでの調査:
scrollViewDelegate
's内にブレークポイントを配置しましたscrollViewWillBeginDragging
。これにより、呼び出しシーケンスは次のようになります。
(...various calls filtering down from UIApplicationMain...)
[UIWindow sendEvent:]
[UIWindow _sendGesturesForEvent:]
...
[UIGestureRecognizer _delayedUpdateGesture:]
[UIGestureRecognizer _updateGestureWithEvent]
_UIGestureRecognizerSendActions
[UIScrollView handlePan:]
[UIScrollView _updatePanGesture]
....
[UIScrollViewDelegate scrollViewWillBeginDragging:]
理想的には、適切な情報で呼び出すことができるようにしたいのですがUIScrollView handlePan:
、正しく呼び出す方法を詳しく説明しているものが見つかりませんhandlePan
(可能である必要がある_UIGestureRecognizerSendActions
と思います)。
または、をサブクラス化できると思いますUIGestureRecognizer
が、これはかなり手間のかかる方法のようです (また、一連のタッチ イベントを伝達する方法がわかりません)。