17

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

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

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

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

那可能吗?

4

1 回答 1

13

这当然是可能的,但不是那么自动......

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

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

}

这是当用户停止在 scrollView 上移动手指时调用的方法,您可以在其中检查内容的坐标:

yourScrollView.contentOffset

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

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
于 2011-02-23T10:39:19.057 回答