如何实现一个循环的 UIScrollView?也就是说,当您滚动到最左边的项目时,UIScrollView 将显示最右边的项目。任何帮助将不胜感激。
问问题
1115 次
1 回答
5
当然,您需要三个视图。在任何给定时间,您都有左视图、右视图和当前视图。
这需要通过 UIScrollViewDelegate 通知每个移动。
如果您检测到您向右移动,则释放左侧,使左侧 = 当前,当前 = 右侧,然后进行新的右侧操作。
如果你检测到你向左移动了,你释放右边,让右边 = 当前,当前 = 左边,然后做一个新的左边。
一般来说,任何与当前页面相距超过一页的视图都是不需要的。所以你总共只需要三页。
当然,您还需要操纵 UIScrollView 的位置,以便进行移动 - 最终结果是您不会移动,尽管看起来您已经移动了。当您完成滚动并根据左/当前/右随机播放更改视图时 - 您可以
[self scrollRectToVisible:(middle frame) animated:NO];
这样您就一直在看同一个实际页面,每边都有一个页面。当滚动发生时,看起来用户可以继续循环滚动 - 但是在每个页面结束后,视图会被打乱,滚动视图中的位置会被设置回中间并且用户可以再次滚动。
回到开始只是使用与您正在使用的任何数据结构的另一端的任何对象相关的视图的问题 - 所以如果那样的current = [(NSArray)data lastObject]
话right = [(NSArray)data objectAtIndex:0]
。
于 2010-08-06T06:09:30.840 回答