我有一个可以水平滚动的UIScrollView。可滚动内容以列显示。
有没有办法让滚动只以步进增量而不是像素移动(即一次移动一列)。
图:
答案 0 :(得分:7)
yourScrollView.pagingEnabled = YES;
查看UIScrollView以获取更多信息。
如果此属性的值为YES,则滚动视图会在用户滚动时停止滚动视图边界的倍数。默认值为NO。
我建议您可能需要将视图结构更改为以下内容:
+--------+
| | <- UIView to hold your structure
+--------+
+--+
| | <- UIScrollView, clipsToBounds = NO, width = column.width
+--+
+--+--+--+
| | | | <- UIView columns
+--+--+--+
水平居中UIScrollView
,确保包含UIView
的{{1}}的宽度是UIScrollView
答案 1 :(得分:1)
虽然我认为分页可能是正确的答案,但它并不是你所要求的,这是不稳定的滚动(“始终”列“)。我相信您可以提供-scrollViewDidScroll:
委托并将contentOffset调整到最近的列。
答案 2 :(得分:1)
如果您定位iOS 5.0,则可以使用新的UIScrollViewDelegate方法scrollViewWillEndDragging:withVelocity:targetContentOffset。这允许您设置在用户停止拖动滚动视图后滚动动画将结束的点。