【问题标题】:How to implement a cyclic UIScrollView?如何实现一个循环的 UIScrollView?
【发布时间】:2011-03-26 04:14:40
【问题描述】:

如何实现一个循环的UIScrollView?也就是说,当您滚动到最左边的项目时,UIScrollView 将显示最右边的项目。任何帮助将不胜感激。

【问题讨论】:

    标签: iphone uiscrollview cyclic


    【解决方案1】:

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

    这需要通过 UIScrollViewDelegate 通知每次移动。

    如果您检测到您向右移动,则释放左侧,使左侧 = 当前,当前 = 右侧,然后进行新的右侧操作。

    如果您检测到您向左移动,则释放右侧,使右侧 = 当前,当前 = 左侧,然后形成新的左侧。

    一般来说,任何与当前页面相差一页以上的视图都是不需要的。所以你总共只需要三页。

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

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

    这样您就可以始终查看同一个实际页面,每侧各有一个页面。当滚动发生时,看起来用户可以继续循环滚动 - 但在每一页结束后,视图会被打乱,滚动视图中的位置会被设置回中间,用户可以再次滚动。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-02
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-15
      • 2023-03-17
      相关资源
      最近更新 更多