防止 UIScrollView 在触摸发生时停止滚动

发布于 2024-11-15 09:26:46 字数 302 浏览 2 评论 0原文

这个问题有点奇怪,但这就是我需要的;)

通常,当 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情深缘浅 2024-11-22 09:26:46

scrollViewDidEndDragging:willDecelerate: 时,在表格视图上方添加一个透明视图,并使用 userInteractionEnabled 来拦截触摸。然后在 scrollViewDidEndDecelerating: 上,将其删除以恢复与表视图的正常交互。连接覆盖层上的触摸处理程序以获取回调。

When scrollViewDidEndDragging:willDecelerate:, add a transparent view above the table view with userInteractionEnabled that intercepts touches. Then on scrollViewDidEndDecelerating:, remove it to restore normal interaction with the table view. Wire up touch handlers on the overlay to get callbacks.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文