分页不同页面宽度的UIScrollView

问题描述 投票:0回答:1

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

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

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

这里

|  Now  |
的宽度比
|  Yesterday evening  |
更小。当分页浏览这些值时,滚动视图应停止在相应值的中心。

这可能吗?

iphone pagination uiscrollview picker
1个回答
13
投票

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

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

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

}

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

yourScrollView.contentOffset

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

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
© www.soinside.com 2019 - 2024. All rights reserved.