UIScrollView にはループ機能は無いのでスクロールのタイミングでサブビューを再配置+スクロールのオフセットを戻して擬似的にループを再現させる方法がよく取られます。 例えば、 UIScrollView の中に5つの subview があり、 右にスワイプしたとします。 スクロールが止まったらすぐに一番右のサブビューを抜き出して、一番左になるよう全ての subview を再配置。(A) それと同時にスクロールオフセットを元の位置に戻す。(B) 1サイクル完成。 これを繰り返せば無限ループしているように見えます。 (A) と (B) の処理を一瞬で行うため、subview の数によっては描画が追いつかないので、pagingEnabled = YES にして、かつ UIScrollView のデリゲートメソッド scrollViewDidEndDecelerating: の中で (A)+
![UIScrollView を無限ループさせる - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/bf58ce9f33e294eed36e8a2d060cead771eff5c7/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9VUlTY3JvbGxWaWV3JTIwJUUzJTgyJTkyJUU3JTg0JUExJUU5JTk5JTkwJUUzJTgzJUFCJUUzJTgzJUJDJUUzJTgzJTk3JUUzJTgxJTk1JUUzJTgxJTlCJUUzJTgyJThCJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz00N2FiN2E4ODJiNTg5OTQyNTc1NTA0NzQ0MGY0ZGI3Zg%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwY2Flc2FyX2NhdCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9OTQ1ZmViODc5Y2U3Mjg1MDM3ODRmZTNjZmEzZjQ2NDU%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Db23d619bf74b4bf2811256a74d3b48e2)