Основная идея состоит в том, чтобы установить себя как UIScrollViewDelegate и применить некоторую арифметику по модулю к позиции прокрутки, чтобы обернуть ее вокруг.
Есть два основных варианта этой идеи. Предположим, что ваши изображения A, B, C, поэтому в настоящее время они находятся внутри скролл-вида, упорядоченного как ABC.
В более логически приятном решении - особенно если у вас было много-много изображений - вы наблюдаете положение прокрутки и, как только оно достигает положения, когда представление перемещается вправо и C покидает экран, вы переупорядочиваете изображения в виде CAB и сдвинуть текущую позицию прокрутки на одну точку вправо, чтобы перемещение было невидимым для пользователя. Другими словами, положение прокрутки ограничено областью из двух экранов, центрированных по центру B (таким образом, вы получаете все B и половину экрана с обеих сторон). Всякий раз, когда вы оборачиваете его откуда-то слева, куда-то справа, вы перемещаете все изображения на одно место вправо. И наоборот.
В немного более простом осуществлении варианта вместо создания вида с прокруткой с изображениями, расположенными ABC, расположите их как CABCA. Затем примените ту же логику, но к центральной области из четырех экранов и не выполняйте перестановку изображений.
Убедитесь, что вы используете setContentOffset:
(или точечную запись, как в scrollView.contentOffset =
) в качестве установщика. setContentOffset:animated:
будет отрицать скорость.