我想要启用分页的水平滚动UIScrollView。此滚动视图中的页面具有不同的宽度,因此滚动距离因页面而异。
目标是为不同的时间点制作一个选择器,例如:
| Now | Yesterday evening | Last Week | Last Month |
^ ^ ^ ^ <- stopps here
此处| Now |
的宽度小于| Yesterday evening |
。在翻阅此值时,滚动视图应停在相应值的中心。
这可能吗?
答案 0 :(得分:13)
这肯定是可能的,但不是那么自然......
我想你应该实现UIScrollViewDelegate协议方法:
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
}
这是当用户停止在scrollView上移动手指时调用的方法, 你可以在里面查看你内容的坐标:
yourScrollView.contentOffset
然后检查你的page.x中的哪一个(在创建它们时在数组中注册它们,或者检查添加到scrollView的所有视图的原点)是否更接近它,然后转到页面的offSet (带动画)调用:
- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated