滚动水平UIScrollView以步进的增量?

我有一个可以水平滚动的UIScrollView。 可滚动内容以列显示。

有没有办法使滚动只能以步进的增量而不是像素(即一次移动一列)。

图: 在这里输入图像说明

是的:

yourScrollView.pagingEnabled = YES; 

检查UIScrollView以获取更多信息。

如果此属性的值为YES,那么当用户滚动时,滚动视图停止滚动视图边界的倍数。 默认值是NO。

我build议您可能需要将您的视图结构更改为如下所示:

 +--------+ | | <- UIView to hold your structure +--------+ +--+ | | <- UIScrollView, clipsToBounds = NO, width = column.width +--+ +--+--+--+ | | | | <- UIView columns +--+--+--+ 

水平居中UIScrollView ,并确保包含UIScrollViewUIView的宽度是UIScrollView宽度的倍数

虽然我认为分页可能是正确的答案,但这不是你所要求的,这是滚动的(列“在任何时候”)。 我相信你可以提供一个-scrollViewDidScroll:委托和调整contentOffset到最近的列。

如果你的目标iOS 5.0,你可以使用新的UIScrollViewDelegate方法scrollViewWillEndDragging:withVelocity:targetContentOffset。 这允许您在用户停止拖动滚动视图之后设置滚动animation将结束的点。