如何在iPhone中制作无限滚动视图?

Asa*_*Ali 6 iphone objective-c ios ios5

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

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

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

我一直在尝试偏移,但是当它通过偏移移动时停止,我也使用了苹果街道滚动器,它不允许我停止中心的每个元素(就像Picker视图一样).

D33*_*6h7 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)));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

    那就是它.

  • 好的解决方案 但是,当偏移改变时,有没有办法省略这个'闪烁'? (2认同)

Nat*_* R. 8

您可以查看以下两个选项之一: