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