我有一个scrollview
与宽度为88的图像视图88。如何在iPhone中制作无限滚动视图?
我想scrollview
滚动到每个图像视图(不分页)
和
我想让在iPhone无限滚动视图,这意味着当它滚动到最后项目它会显示第一个项目旁边..
我一直在尝试偏移,但它停止时,它通过偏移量和我已经使用苹果街头卷轴,它不允许我停止中心的每个元素(就像Picker视图一样)。
我有一个scrollview
与宽度为88的图像视图88。如何在iPhone中制作无限滚动视图?
我想scrollview
滚动到每个图像视图(不分页)
和
我想让在iPhone无限滚动视图,这意味着当它滚动到最后项目它会显示第一个项目旁边..
我一直在尝试偏移,但它停止时,它通过偏移量和我已经使用苹果街头卷轴,它不允许我停止中心的每个元素(就像Picker视图一样)。
首先,我推荐使用UITableView,这样可以保持较低的内存使用量。我曾在一个项目中成功使用的一种方法如下:
复制您的单元格的内容,我的意思是,如果你有这样5个项目:
| 1 | 2 | 3 | 4 | 5 |
您应该添加相同(可重复使用的引擎表视图,这不是一个大问题),在表的末尾,以这样的:
| 1 | 2 | 3 | 4 | 5 | 1 | 2 | 3 | 4 | 5 |
-(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)));
}
}
}
上面的代码将滚动位置移动到顶部,如果您几乎达到滚动的最终位置;或者,如果你几乎在上面,将你移到底部...
伟大的解决方案。然而,有什么办法可以在偏移量改变时省略这个'眨眼'吗? – Vive 2013-11-21 14:03:49
这使我很长时间都面临严重的问题,所以我真的感到你的痛苦。我发现这个控制应该可以解决你的问题:http://www.cocoacontrols.com/platforms/ios/controls/infinitescrollview
我也考虑插入转换和禁用滚动,所以它变得像幻灯片,但任何方式应该工作。
下面是我用来做的解决方案的简短说明。假设你有从0到9的计数器,那么当你进行转换9 - > 0时,你实际上在9(在scrollView中)之后欺骗了另一个0(称为0'),动画转换为0',比让非动画瞬间过渡到位于scrollView顶部的0。
你可以看看这两个选项之一:
高级滚动查看技术是解决这个问题的关键。 – cbowns 2013-10-29 20:15:11
您可以使用iCarousel这个库。 https://github.com/nicklockwood/iCarousel
对于其他寻找解决方案的人,你也可以试试这个库无限滚动选择器在https://github.com/Seitk/InfiniteScrollPicker/它基本上是拖放。我在一个项目中使用它,它工作得很好。
实现一个简单的无限滚动在这个小项目:
https://github.com/mcmatan/Infinity-tabBar-scroll-view/blob/master/README.md
莫非要与或没有用户交互? – 2012-08-08 10:38:37