別のものの中に入れ子になっていますがUIScrollView
、どちらも水平です。
外側のものには複数の が含まれていますUIScrollViews
。たとえば、(複数のページを持つドキュメントの) ページごとに 1 つです。内側にはUIView
、画面に収まるだけの を含めるUIView
ことも、スクロールする必要のあるより大きなものを含めることもできます (通常は水平方向ですが、ユーザーが画面をつまむと、両方向にスクロールできます)。
この問題は、ドキュメントをすばやくスクロールし、外側のスクロール ビューがそのサブビューをスクロールすることを決定し、内側のスクロール ビュー (contentSize が画面サイズより大きいもの) をまったくスクロールさせない場合に発生します。外側のスクロール ビューをそっとスクロールすると、代わりに内側のスクロール ビューもスクロールします。
望ましい動作は、外側のスクロール ビューをすばやくスクロールしても、コンテンツが完全に表示されるまで内側のスクロール ビューをスクロールしてから、外側のスクロール ビューをスクロールさせることです。
hitTest:withEvent:
外側のスクロール ビューが現在表示されているUIScrollView
サブビューにスクロールするかどうかを尋ねるようにオーバーライドしようとしましたが、これは現在、前方にスクロールする場合にのみ機能します。問題は、 のスクロール方向を検出できないことhitTest:withEvent:
です。そのため、このコードを別の場所に移動することも考えていますが、それが正しい方法かどうかはわかりません。
文中のすべての「スクロール」単語で申し訳ありませんが、これをより良い方法で説明する方法がわかりません