Paging UIScrollView - 如何一次轻弹多个页面

Posted

技术标签:

【中文标题】Paging UIScrollView - 如何一次轻弹多个页面【英文标题】:Paging UIScrollView - How to flick multiple pages at a time 【发布时间】:2013-03-19 04:05:03 【问题描述】:

我有一个类似于Apple's Page Control example project 的分页滚动视图,我已将其改编为水平选择器。我真的希望能够通过每个轻弹手势滚动多个页面,而不是一次一个,就像 UIPickerViews 的工作方式一样。寻找有关如何解决此问题的一些指导。谢谢!

【问题讨论】:

你能看看这位Capikaw先生github.com/nicklockwood/iCarousel 【参考方案1】:

这里最好Source Code

可能是无论在那里设置这些数字,您将contentOffset 设置在它的手下并没有给人留下深刻的印象。所以它只是继续设置它认为应该是下一个瞬间的 contentOffset - 而不验证 contentOffset 在此期间是否发生了变化。

我将继承 UIScrollView 并将魔法放入 setContentOffset 方法中。根据我的经验,所有内容偏移更改都通过该方法,即使是内部滚动引起的内容偏移更改。只需在某个时候执行 [super setContentOffset:..] 即可将消息传递给真正的 UIScrollView

也许如果你把你的换档动作放在那里它会更好。您至少可以检测到contentOffset 的 3000-off 设置,并在传递消息之前对其进行修复。如果您还要覆盖 contentOffset 方法,您可以尝试看看是否可以制作一个虚拟的无限内容大小,并“在后台”将其缩小到真实比例。

This is also helpful for you..!!!

【讨论】:

以上是关于Paging UIScrollView - 如何一次轻弹多个页面的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 在分页时确定 scrollViewDidEndDragging 上的滚动方向

UIScrollView 的开源替代品

UIScrollView setContentOffset(分页)被触摸屏停止

XCode - UIScrollView 分页不显示子视图(自动布局?)

iOS / Obj-C UIScrollView 和 PageControl 不起作用

如何使用 Paging 3 库更新单个项目