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

Ios 使用三个视图的无限循环分页UIScrollView,ios,cocoa-touch,uiscrollview,pagination,Ios,Cocoa Touch,Uiscrollview,Pagination,我想创建一个包含三个常量视图的UIScrollView。中间视图最初应始终显示。当用户向右滚动时,视图1将是活动视图,其他两个视图将移动,就像有一个循环:视图3现在将位于左侧,视图2位于右侧。附图说明了我想要什么: 这可能吗 仅3页 有时,您可能想要一个无限的页面循环,但不想要 加载大量内容。例如,您可能有很多 要在UIScrollView中显示的内容。装载大量 那里的数据并不是处理这种情况的理想方法 逻辑 我们可以在那里使用的是保持UIScrollView只有三页。 数据将加载到每个页面上,用

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

这可能吗

仅3页

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

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


。。。从

中提取非常可能。您可以将
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
}
int numberOfPages=3;
//便于参考尺寸
CGFloat portalHeight=self.frame.size.height;
CGFloat portalWidth=self.frame.size.width;
self.contentSize=CGSizeMake(self.frame.size.width*页数,self.frame.size.height);
self.contentOffset=CGPointZero;
//需要锁定滚动页面
self.paginEnabled=是;
//设置页面
对于(i=0;i

编辑:我可能没有完全理解您的问题。这些是否应该是可以连续循环的视图“旋转木马”?

将您的滚动视图设置为一行5个视图。使第一个视图3成为下一个1、2、3、1。在需要的地方启动Scrollview。

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