ビュー コントローラー (UIViewController のカスタム サブクラス) でいくつかの UI コンポーネントのタッチを処理しています。touchesBegan:withEvent:
、touchesMoved:withEvent:
、および のメソッドがありtouchesEnded:withEvent:
ます。正常に動作していました。次に、スクロール ビュー (UIScrollView) を階層の最上位ビューとして追加しました。
現在、ビュー コントローラーのタッチ ハンドラーが機能しません。彼らは呼ばれません。興味深いのは、スクロール ビュー内に動作する他のさまざまな UI コンポーネントがあることです。一部はボタンで、一部は独自の を定義するカスタム ビューtouchesBegan:withEvent:
などです。機能しないのは、ビュー コントローラーのタッチ ハンドラーだけです。
スクロールビューが独自の目的でこれらのタッチをインターセプトしているためだと思いましたが、 UIScrollView をサブクラス化し、それを機能させることができるかどうかを確認するために、YES
常に からtouchesShouldBegin:withEvent:inContentView:
、NO
常に から戻っていtouchesShouldCancelInContentView:
ます。それでもうまくいきません。
それが違いを生む場合、私のビューコントローラーはタブバーコントローラー内にありますが、それは関係ないと思います。
誰かがこの問題を抱えていて、すぐに解決策を持っていますか? 私の推測では、スクロール ビューはレスポンダー チェーンを上っていきます。私はそれを元に戻すことができますか?他に何もわからない場合は、スクロール ビューの下のトップ レベル ビューをカスタム ビューにして、メッセージをビュー コントローラーに転送しますが、扱いにくいようです。