用三个视图的无限循环分页UIScrollView

时间:2011-07-22 11:07:19

标签: ios cocoa-touch uiscrollview pagination

我想创建一个包含三个常量视图的UIScrollView。最初应始终显示中间视图。当用户向右滚动时,View 1将成为活动视图,其他两个视图将移动,就好像有一个循环:View 3现在位于左侧,View 2位于右侧。附图解释了我想要的内容:

这可能吗?

4 个答案:

答案 0 :(得分:4)

  

仅限3页

     

有时您可能需要无限页面循环,但不想要   加载很多内容。例如,你可能有很多   要在UIScrollView中显示的内容。装载大量的   数据不是理想的处理方法。

     

逻辑   我们可以使用的是将UIScrollView保持在三页。   数据将加载到每个页面上,用户将始终关注   中间页面中的数据。当用户滚动到新页面时,   将重置每个页面的内容,并且偏移量将返回   用户返回查看中间页面。那样即使你可能   有大量的数据要滚动,它不是全部加载的   一旦。一次只加载三页。

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

答案 1 :(得分:0)

连续滚动查看5个视图。将第一个视图视图3设置为下一个1,2,3,1。在您想要的位置启动Scrollview。

答案 2 :(得分:-1)

非常可能。您可以继承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
}

编辑:我可能不完全理解你的问题。它们应该是一个可以不断循环的“旋转木马”吗?

答案 3 :(得分:-1)

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