如何在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))); } } }
上面的代码将滚动位置移动到顶部,如果您几乎达到滚动的最后一个位置; 或者,如果你几乎在顶部,移动到底部…
- 就是这样。
你可以看看这两个选项之一:
- 如果您已注册为开发人员,请观看WWDC 2011上的“ 高级滚动视图技术 ”会话。
- 来自http://mobiledevelopertips.com/user-interface/creating-circular-and-infinite-uiscrollviews.html的精彩教程
这导致我很长一段时间严重的问题,所以我真的感到你的痛苦。 我发现这应该解决您的问题的控制: 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/它基本上是拖放。 我在一个项目上使用它,它工作得很好。
在这个小型项目中实现了一个简单的无限滚动:
https://github.com/mcmatan/Infinity-tabBar-scroll-view/blob/master/README.md