关于UIView的userInteractionEnabled
财产,Apple的医生说的是:
...设置为NO时,用户事件 - 例如触摸和键盘 - 用于 视图将被忽略并从事件队列中删除。设置为时 是的,事件通常会传递给视图......
所以我有两个UIView
个实例,A
和B
,B
是A
的子视图,两者都有userInteractionEnabled
{{1默认情况下。
现在我将YES
- 子视图的B
设置为userInteractionEnabled
,而NO
的{{1}}设置为A
,并将一些手势添加到YES
}响应某些用户事件。
如果我点按屏幕,根据Apple文档,A
- tap event
会忽略此B
,因为其userInteractionEnabled
为NO
。
但为什么将tap event
“从事件队列中删除”?我认为A
仍然可以根据responder's chain
捕获此事件。如果事件已从事件队列中删除,那么A
如何捕获此事件?
简单地说,我想知道每个UIView
实例是否都有自己的事件队列?
如果没有,为什么一个视图的超级视图在从事件队列中删除后可以捕获一个tap事件?
或者说,文档中提到的这个event queue
对Apple意味着什么?
答案 0 :(得分:0)
我认为关键在于"意图被忽略并从事件队列中删除"。如果您查看Event Delivery: The Responder Chain的Apple文档,很明显,例如,点击事件会在该视图的响应者链上移动,直到系统找到可以处理它的对象为止。
用于视图,我会看到(例如在UIButton上的touchUpInside事件)