防止 UIScrollView 在触摸发生时停止滚动
这个问题有点奇怪,但这就是我需要的;)
通常,当 UIScrollView 滚动时,如果您触摸视图,它会立即停止,但这就是我想要改变的行为。
我已经对 UITableView 进行了子类化并重写了 Touchs* 方法,但是当表格滚动时,没有调用 Touchs* 事件。正如我在 Apple 文档中读到的那样,UIScrollView(UITableView 的父类)不会转发这些事件。
我想要的是检测该触摸(这将在普通情况下停止滚动)但保持 UIScrollView 滚动。
因此,我想要一个将被调用的方法,而不是停止滚动。
The question is a little bit weird, but that's what I need ;)
Usually, when a UIScrollView is scrolling, if you touch the view, it stops immediately, but that's the behavior I want to change.
I've subclassed UITableView and overriden the touches* method, but while the table is scrolling no touches* events are called. As I've read in the Apple Documentation, UIScrollView (which is the parent class of UITableView) doesn't forward those events.
What I want is to detect that touch (which will stop the scroll in a ordinary scenario) but keep the UIScrollView scrolling.
So, instead stopping the scroll I want to have a method which is going to be called.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当
scrollViewDidEndDragging:willDecelerate:
时,在表格视图上方添加一个透明视图,并使用userInteractionEnabled
来拦截触摸。然后在scrollViewDidEndDecelerating:
上,将其删除以恢复与表视图的正常交互。连接覆盖层上的触摸处理程序以获取回调。When
scrollViewDidEndDragging:willDecelerate:
, add a transparent view above the table view withuserInteractionEnabled
that intercepts touches. Then onscrollViewDidEndDecelerating:
, remove it to restore normal interaction with the table view. Wire up touch handlers on the overlay to get callbacks.