【发布时间】:2011-02-11 22:16:53
【问题描述】:
在启用分页的情况下滚动UIScrollView 时是否可以更改“重力”(停止速度)?我已经实现了一个horizontalUIScrollView,它的作用类似于UIPickerView。我希望能够根据轻弹速度滚动浏览许多项目。谢谢!
【问题讨论】:
标签: iphone objective-c cocoa-touch xcode
在启用分页的情况下滚动UIScrollView 时是否可以更改“重力”(停止速度)?我已经实现了一个horizontalUIScrollView,它的作用类似于UIPickerView。我希望能够根据轻弹速度滚动浏览许多项目。谢谢!
【问题讨论】:
标签: iphone objective-c cocoa-touch xcode
不幸的是,您没有可以更改的简单属性来实现此目的,但您可以使用滚动视图委托方法来滚动您自己的(这有点复杂,但可以实现 - 我已将表格视图修改为“对齐”到行时滚动结束)。
实际上,您必须编写自己的分页实现代码。
【讨论】:
scrollViewWillBeginDecelerating 和scrollViewDidEndDecelerating(第一个为时过早,最后一个为时已晚)。谢谢!
scrollViewDidScroll,尽管名称有点误导,但会被连续调用,还有scrollViewDidEndDragging:willDecelerate。您可以使用这些(以及您已经提到的方法)来计算滚动的速度,以及手指何时从屏幕上抬起。这将让您“翻页”到最近的项目,但仍然让用户非常快速地浏览项目(而不是一次一个)。编写代码不是世界上最简单的事情,但绝对可以实现。