UIView的userInteractionEnabled属性

时间:2016-11-14 08:05:31

标签: ios uiview

关于UIView的userInteractionEnabled财产,Apple的医生说的是:

  

...设置为NO时,用户事件 - 例如触摸和键盘 - 用于   视图将被忽略并从事件队列中删除。设置为时   是的,事件通常会传递给视图......

所以我有两个UIView个实例,ABBA的子视图,两者都有userInteractionEnabled {{1默认情况下。

现在我将YES - 子视图的B设置为userInteractionEnabled,而NO的{​​{1}}设置为A,并将一些手势添加到YES }响应某些用户事件。

如果我点按屏幕,根据Apple文档,A - tap event会忽略此B,因为其userInteractionEnabledNO

但为什么将tap event“从事件队列中删除”?我认为A仍然可以根据responder's chain捕获此事件。如果事件已从事件队列中删除,那么A如何捕获此事件?

简单地说,我想知道每个UIView实例是否都有自己的事件队列?

如果没有,为什么一个视图的超级视图在从事件队列中删除后可以捕获一个tap事件?

或者说,文档中提到的这个event queue对Apple意味着什么?

1 个答案:

答案 0 :(得分:0)

我认为关键在于"意图被忽略并从事件队列中删除"。如果您查看Event Delivery: The Responder Chain的Apple文档,很明显,例如,点击事件会在该视图的响应者链上移动,直到系统找到可以处理它的对象为止。

用于视图,我会看到(例如在UIButton上的touchUpInside事件)