UIScrollView带有"循环"滚动

wer*_*ary 13 iphone cocoa-touch uiscrollview uikit ios

我试图在我的UIScrollView中滚动"循环",但不成功.

我想做什么:如果uiscrollview到达结束,如果uiscrollview在开始并向后移动它应该移动到开始,它应该移动到结束

在我的情况下附加scrollview不是好方法(其他方法应该得到"页面ID")

你有什么想法吗?

red*_*t84 42

我已实现此方法,但它需要启用分页.让我们假设你有五个元素A,B,C,D and E.设置视图时,将最后一个元素添加到开头,将第一个元素添加到结尾,并调整内容偏移量以查看第一个元素,如下所示E,[A],B,C,D,E,A.在UIScrollViewDelegate中,检查用户是否到达任何一端,并将没有动画的偏移移动到另一端.

想象一下[]表示显示的视图:

E,A,B,C,[D],E,A
Run Code Online (Sandbox Code Playgroud)

用户向右滑动

E,A,B,C,D,[E],A
Run Code Online (Sandbox Code Playgroud)

用户向右滑动

E,A,B,C,D,E,[A]
Run Code Online (Sandbox Code Playgroud)

然后,自动将内容偏移设置为第二个元素

E,[A],B,C,D,E,A
Run Code Online (Sandbox Code Playgroud)

这样,用户可以滑动两种方式来创建无限滚动的错觉.

E,A,[B],C,D,E,A
Run Code Online (Sandbox Code Playgroud)


更新

我上传了这个算法的完整实现.这是一个非常复杂的类,因为它还具有点击选择,无限循环滚动和单元重用.您可以按原样使用代码,修改代码或提取所需的代码.最有趣的代码在课堂上TCHorizontalSelectorView.

链接到该文件

好好享受!


更新2

UICollectionView现在是实现此目的的推荐方法,它可用于获得完全相同的行为.本教程详细介绍了如何实现它.