UIScrollView 事件处理
Posted
技术标签:
【中文标题】UIScrollView 事件处理【英文标题】:UIScrollView event handling 【发布时间】:2010-10-15 02:43:29 【问题描述】:出于某种原因,我正在尝试制作自己的自定义 UIScrollView
。问题是,是否可以完全模仿UIScrollView
的事件处理行为,包括“延迟内容触摸”和“可取消内容触摸”?也就是说,自定义滚动视图应该延迟处理事件,直到它可以确定滚动是否是意图,并且它还应该能够稍后取消其子视图的触摸。问题如下:
1) hitTest:应该立即返回,这样我就不能延迟触摸所有者的确定。
2) 我们不能稍后以编程方式取消触摸事件。没有这样的 api。
3) 我试图覆盖sendEvent:
方法,但没有帮助。必须调用 [super sendEvent:]
会将事件发送到非预期视图。而且,调用sendEvent:
的时候已经完成了命中测试,以后不能再修改UITouch.view
的值了。
那么问题又来了,是否可以在不使用UIScrollView
的情况下制作自定义UIScrollView
,包括它的触摸处理行为?
提前致谢!
【问题讨论】:
真正的问题是:值得麻烦吗? 【参考方案1】:要记住的一点是,在 ios 5.0 发布之前,用于常规 UIScrollViews 的手势识别器(Pan 和 Zoom)是私有属性。我想当它们公开时,您可以将它们转移到您自己的滚动视图中。
【讨论】:
以上是关于UIScrollView 事件处理的主要内容,如果未能解决你的问题,请参考以下文章
两个重叠的 UIScrollView 可以同时处理一个事件吗?