Концептуально я бы установил контейнер UIScrollView
с содержимым области прокрутки в качестве подпредставлений.Чтобы смоделировать круговую прокрутку, я бы сохранил массив подпредставлений.Я бы добавил вид, находящийся за пределами экрана, на начальном краю, и убрал бы вид, находящийся за пределами экрана, на начальном краю.
UIScrollViewDelegate
методы будут вызываться, когда человек начинает или прекращает перетаскивать представление, которое можно использовать для запуска и остановки анимированной прокрутки.Другие методы в этом протоколе можно использовать для сброса содержимого прокрутки при достижении края, поэтому при необходимости можно добавить больше видов.
Я бы, вероятно, использовал CADisplayLink
для ручного управления анимацией,Метод, данный CADisplayLink
, обновит прокрутку и будет управлять сложением и вычитанием видов по краям.Это также остановит прокрутку на основе флага, установленного методами UIScrollViewDelegate
, когда человек перетаскивает свиток.