【问题标题】:Paging UIScrollView with different page widths不同页面宽度的分页 UIScrollView
【发布时间】:2011-07-02 15:35:09
【问题描述】:

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

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

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

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

这可能吗?

【问题讨论】:

标签: iphone uiscrollview paging picker


【解决方案1】:

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

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

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

}

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

yourScrollView.contentOffset

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

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

【讨论】:

  • 谢谢meronix,这正是我想要的!一些额外的提示: - UIScrollView.pagingEnabled 必须设置为 NO - 我还必须实现 UIScrollViewDelegate 协议方法:- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
  • 为了更好的结果,我结束了- scrollViewWillBeginDecelerating:(UIScrollView *)scrollView方法的实现
猜你喜欢
  • 1970-01-01
  • 2023-03-16
  • 2011-01-16
  • 2014-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-20
相关资源
最近更新 更多