【问题标题】:Paginating UIScrollView with infinite loop of three views使用三个视图的无限循环分页 UIScrollView
【发布时间】:2011-07-22 11:07:19
【问题描述】:

我想创建一个具有三个常量视图的UIScrollView。中间视图应始终在最初显示。当用户向右滚动时,视图 1 将成为活动视图,而其他两个视图将像循环一样移动:视图 3 现在将在左侧,而视图 2 在右侧。附图说明了我想要什么:

这可能吗?

【问题讨论】:

    标签: ios cocoa-touch uiscrollview pagination


    【解决方案1】:

    仅 3 页

    有时您可能想要一个无限的页面循环,但又不想 加载大量内容。例如,您可能有很多 在 UIScrollView 中显示的内容。装载大量 数据不会有理想的方法来处理这种情况。

    逻辑 我们可以在那里使用的是将 UIScrollView 保持在三个页面上。 数据会加载到每个页面上,用户会一直在看 中间页的数据。当用户滚动到新页面时, 每个页面的内容将被重置,偏移量将返回 用户返回查看中间页面。这样即使你可能 有大量数据要滚动浏览,并非全部加载 一次。一次只能加载三个页面。

    ...取自http://iosdevelopertips.com/user-interface/creating-circular-and-infinite-uiscrollviews.html

    【讨论】:

      【解决方案2】:

      让您的滚动视图连续显示 5 个视图。将第一个视图视图 3 设置为下一个 1、2、3、1。在您想要的位置启动 Scrollview。

      【讨论】:

        【解决方案3】:

        很有可能。您可以继承 UIScrollView 并在其 - (id)init 方法中删除类似的内容。

        int numberOfPages = 3;
        
        // For ease in referencing sizes
        CGFloat portalHeight = self.frame.size.height;
        CGFloat portalWidth = self.frame.size.width;
        
        self.contentSize = CGSizeMake(self.frame.size.width * numberOf Pages, self.frame.size.height);
        
        self.contentOffset = CGPointZero;
        
        // Needed to lock scrolling to pages
        self.pagingEnabled = YES;
        
        // Setup pages
        for (NSUInteger i = 0; i < numberOfPages; i++) {
            // Add subviews here
        }
        

        编辑:我可能不完全理解你的问题。这些应该是可以连续循环的视图“轮播”吗?

        【讨论】:

          【解决方案4】:

          scroll3.contentOffset = CGPointMake(scroll3.frame.size.width*2, 0);

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-01-01
            • 2016-03-21
            • 2012-10-09
            • 1970-01-01
            • 2013-09-24
            • 2013-07-24
            相关资源
            最近更新 更多