2

私はUIScrollViewスクロールを一方向にだけしようとしていて、まだすべてのUITouchイベントを取得しています。これが可能かどうかは完全にはわかりません。

UIResponderの「タッチ」イベントをオーバーライドしようとしましたUIScrollViewが、スクロールが開始されるとすぐに、タッチ メソッドが呼び出されなくなります。

次に、ドラッグ イベントの受信を開始するまでプロパティを false に設定しようとしUIScrollViewましたが、ドラッグ中にタッチ イベントの受信を開始する方法が見つからないようです。これは可能ですか?scrollEnabledUIScrollViewUIScrollView

私の次の試みは、スクロールビューに「パディング」を追加し、プロパティをいじって独自の「タッチイベント」を作成することでしたが、それは過剰な回数のcontentOffset呼び出しとクレイジーな処理を開始しました-応答の有効性に関するいくつかの問題もscrollViewDidScroll:.

hitTest:withEvent:pointInside:withEvent:touchesShouldBegin:withEvent:inContentView:およびで遊んでみましたが、touchesShouldCancelInContentView:成功しませんでした。

それ以来、私は他のいくつかのことを試しましたが、どれもうまくいきませんでした。また、私が見つけたものから、delaysContentTouchesfalse に設定するとスクロール応答が破壊されます。

いくつかの実際のオーバーライドされた touches メソッドが大好きです。スーパーを呼び出さないとUIScrollViewタッチを受けないメソッド。

スクロールが開始されるとすぐに「タッチ」イベントがドロップオフするため、UITouchのスクロールに影響を与えずに es (タップだけでなく、ドラッグ、開始、リリース、およびキャンセル)を取得する方法が必要です。これは可能ですか?UIScrollViewUIResponder

4

2 に答える 2

1

common を検出したいだけなら、 likeをあなたの にtouches付けてみてください。gesture recognizersUITapGestureRecognizerviewUIScrollView

一部を検出して残りを に渡す のUIView上に透明を配置することもできます。scrollviewtouchesscrollview

于 2013-04-29T19:44:25.030 に答える