Я пытаюсь создать собственный вертикальный UIScrollView, который мог бы обрабатывать несколько страниц с разной высотой.
Предположения:
- высота страницы равна или больше высоты экрана
- если страница выше высоты экрана, она прокручивается как обычно UIScrollView - с подпрыгиванием сверху и снизу
- if user ends up scrolling and "page break" is in the middle of screen
- if there is no velocity - page snaps to closest
- если есть скорость - страница меняется на единицу в направлении свайпа
Я пробовал много подходов для достижения этой цели, но наткнулся на многие причуды UIScrollView, которые усложняют задачу.
Проблемы:
- UIPanGestureRecognizer имеет ненадежный метод получения скорости (velocityInView :)
- scrollViewWillEndDragging: withVelocity: targetContentOffset: метод вызывает у меня головную боль, потому что он произвольно может разрушить мои попытки анимировать настройку смещения содержимого
- Я не знаю, как добиться отскока на одной из средних страниц, боюсь, мне придется переписать всю обработку прокрутки
- when I try to override setting content offset when UIScrollView is decelerating, what I get is
- my content offset is set
- замедление продолжается после установленного мной смещения содержимого
Бонус
Я также пробовал разместить UIScrollView внутри UIScrollView как страницу, но этот подход тоже был головной болью. Например, когда я находился внизу внутренней прокрутки, я прокрутил немного вниз, убрал палец, быстро схватил снова и прокрутил вверх, внешний прокрутка получила касание, что испортило внутреннюю презентацию прокрутки.
Кто-нибудь знает, как это сделать? Любые советы будут полезны, так как я полностью застрял ...