2012-08-08 66 views
6

我有一个scrollview宽度为88的图像视图88如何在iPhone中制作无限滚动视图?

我想scrollview滚动到每个图像视图(不分页)

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

我一直在尝试偏移,但它停止时,它通过偏移量和我已经使用苹果街头卷轴,它不允许我停止中心的每个元素(就像Picker视图一样)。

+0

莫非要与或没有用户交互? – 2012-08-08 10:38:37

回答

9

首先,我推荐使用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))); 
     } 
    } 
} 

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

    3.就是这样。
+2

伟大的解决方案。然而,有什么办法可以在偏移量改变时省略这个'眨眼'吗? – Vive 2013-11-21 14:03:49

1

下面是我用来做的解决方案的简短说明。假设你有从0到9的计数器,那么当你进行转换9 - > 0时,你实际上在9(在scrollView中)之后欺骗了另一个0(称为0'),动画转换为0',比让非动画瞬间过渡到位于scrollView顶部的0。

相关问题