У меня есть вложенный UIScrollView
внутри другого, оба горизонтальные.Вложенные UIScrollViews с горизонтальной прокруткой для обоих
Внешний содержит несколько UIScrollViews
, скажем, один на страницу (документа с несколькими страницами). Внутренний может содержать только UIView
, который подходит к экрану или может быть немного больше UIView
, который также следует прокручивать (типично по горизонтали, но если пользователь зажимает экран, он может прокручивать в обоих направлениях).
Проблема возникает, когда я быстро прокручиваю документ, а внешний вид прокрутки решает прокрутить свои подпрограммы, не позволяя прокручивать внутренние прокрутки (те, у которых размер содержимого больше размера экрана). Если я мягко прокручиваю внешний вид прокрутки, он вместо этого прокручивает внутренний.
Желаемое поведение состоит в том, что даже если я быстро прокручу внешний вид прокрутки, он должен прокрутить внутренний, пока его содержимое не будет полностью отображено, и только затем прокрутите прокрутку внешнего прокрутки.
Я попробовал переопределить hitTest:withEvent:
так, чтобы внешний вид прокрутки должен был спросить его видимый в настоящее время вид UIScrollView
, если он должен прокручиваться или нет, но в настоящее время он работает только при прокрутке вперед. Проблема в том, что я не могу определить направление прокрутки в hitTest:withEvent:
, поэтому я также думаю о переносе этого кода в другое место, но я не знаю, правильно ли это сделать.
Я прошу прощения за все «прокручивать» слова в предложениях, но я не знаю, как объяснить это лучший способ
scrollview внутри scrollview не рекомендуется шаблон apple.It может привести непредсказуемые результаты –
здесь http://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/UIScrollView_pg/NestedScrollViews/NestedScrollViews.html# // apple_ref/doc/uid/TP40008179-CH7-SW2 говорят, что они поддерживаются. К сожалению, я не вижу другого способа добиться этого. Более того, я работаю над большой базой кода, и маловероятно, что мы собираемся реорганизовать это, если это единственный вариант – Vik
Он также говорит *** Примечание: эта прокрутка в этом направлении поддерживается, и существует четкое поведение определенная для функциональности, однако это поведение может быть изменено в будущих версиях iOS. *** –