使用不同的页面宽度分页UIScrollView

时间:2011-02-23 10:17:06

标签: iphone uiscrollview paging picker

我想要启用分页的水平滚动UIScrollView。此滚动视图中的页面具有不同的宽度,因此滚动距离因页面而异。

目标是为不同的时间点制作一个选择器,例如:

|  Now  |  Yesterday evening |  Last Week  |  Last Month  |
    ^              ^                ^              ^           <- stopps here

此处| Now |的宽度小于| Yesterday evening |。在翻阅此值时,滚动视图应停在相应值的中心。

这可能吗?

1 个答案:

答案 0 :(得分:13)

这肯定是可能的,但不是那么自然......

我想你应该实现UIScrollViewDelegate协议方法:

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{

}

这是当用户停止在scrollView上移动手指时调用的方法, 你可以在里面查看你内容的坐标:

yourScrollView.contentOffset

然后检查你的page.x中的哪一个(在创建它们时在数组中注册它们,或者检查添加到scrollView的所有视图的原点)是否更接近它,​​然后转到页面的offSet (带动画)调用:

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated