如何在iPhone中进行无限滚动视图?

我有一个宽度为88的5个图像视图的 scrollview 视图

我希望滚动视图滚动到每个图像视图(不分页)

我想在iPhone中一个无限的滚动视图,这意味着当它滚动到最后一个项目时,它会显示第一个项目旁边的..

我一直在尝试偏移,但它停止时,它通过偏移量, 我也用苹果街头滚动不允许我停止中心的每个元素(就像采摘视图)..

首先,我build议使用UITableView,这样可以保持较低的内存使用量。 我在一个项目中成功使用的方法如下:

    1.列表项目

复制你的单元格的内容,我的意思是如果你有这样的5个项目:

| 1 | 2 | 3 | 4 | 5 |

您应该在表的末尾添加相同的值(在带有可重用引擎的表视图中,这并不是什么大问题),看起来像这样:

| 1 | 2 | 3 | 4 | 5 | 1 | 2 | 3 | 4 | 5 |

    2.使用以下命令修改scrollViewDidScroll:
 -(void)scrollViewDidScroll:(UIScrollView *)scrollView { if (scrollView == _yourScrollView) { CGFloat currentOffsetX = scrollView.contentOffset.x; CGFloat currentOffSetY = scrollView.contentOffset.y; CGFloat contentHeight = scrollView.contentSize.height; if (currentOffSetY < (contentHeight / 6.0f)) { scrollView.contentOffset = CGPointMake(currentOffsetX,(currentOffSetY + (contentHeight/2))); } if (currentOffSetY > ((contentHeight * 4)/ 6.0f)) { scrollView.contentOffset = CGPointMake(currentOffsetX,(currentOffSetY - (contentHeight/2))); } } } 

上面的代码将滚动位置移动到顶部,如果您几乎达到滚动的最后一个位置; 或者,如果你几乎在顶部,移动到底部…

    就是这样。

你可以看看这两个选项之一:

这导致我很长一段时间严重的问题,所以我真的感到你的痛苦。 我发现这应该解决您的问题的控制: http : //www.cocoacontrols.com/platforms/ios/controls/infinitescrollview

我也考虑插入转换和禁用滚动,所以它变得像一个幻灯片,但任何方式应该工作。

这是我用来做解决scheme的简短说明。

假设你有0-9的计数器,那么当你进行9-> 0的转换时,你实际上在9(在scrollView中)之后欺骗了另一个0(称为0),animation转换为0,animation即时过渡到0,站在scrollView的顶部。

你可以使用iCarousel库。 https://github.com/nicklockwood/iCarousel

对于其他人寻找解决scheme,你也可以尝试这个库无限滚动select器在https://github.com/Seitk/InfiniteScrollPicker/它基本上是拖放&#x3002; 我在一个项目上使用它,它工作得很好。

在这个小型项目中实现了一个简单的无限滚动:

https://github.com/mcmatan/Infinity-tabBar-scroll-view/blob/master/README.md