如何实现循环UIScrollView?

时间:2010-08-06 05:43:16

标签: iphone uiscrollview cyclic

如何实现循环UIScrollView?也就是说,当您滚动到最左侧的项目时,UIScrollView将显示非常正确的项目。任何帮助都会很感激。

1 个答案:

答案 0 :(得分:5)

当然,你需要三个观点。在任何给定时间,您都有左视图,右视图和当前视图。

这需要通过UIScrollViewDelegate通知每个动作。

如果您检测到您向右移动,则向左移动,使left = current,current = right,然后再右转。

如果您检测到向左移动,则向右移动,向右移动=当前,当前=左移,然后向左移动。

一般来说,不需要任何超过一页的视图。所以你总共只需要三页。

当然你还需要操纵UIScrollView的位置,以便你可以进行动作 - 最终的结果就是你看起来没有移动。当您完成滚动并根据左/当前/右侧随机播放更改视图时 - 您可以

  [self scrollRectToVisible:(middle frame) animated:NO];

这样您就可以始终查看相同的实际页面,每页都有一页。当滚动发生时,看起来用户可以在循环中继续滚动 - 但是在每个页面翻转后,视图被洗牌,滚动视图中的位置被设置回中间,用户可以再次滚动。

回到起点只是使用与您正在使用的任何数据结构的另一端的任何对象相关的视图 - 所以如果current = [(NSArray)data lastObject]那么right = [(NSArray)data objectAtIndex:0]