2、在以下几种情况下,控件是不能接收触摸事件
1.不接收用户交换
2.隐藏 hiden = YES;
3.透明 alpha = 0.0 ~ 0.01;
提示:UIImageView的userInteractionEnable默认为NO,因此UIImageView以及他的子控件默认不接收触摸事件。
3、事件的完整处理过程
1.先将事件对象由上往下传递(由父控件传递给子控件),找到最合适的控件来处理这个事件(假如点击了绿色的) (如上图:白-->红 --->绿)
2.调用最合适的控件 touches....(begin.. moving ... end... )方法
3.如果调用了 [super touches...]方法,则事件将会顺着响应者链条往回传递,传递给上一个响应者(能处理事件的控件)
4.接着就会调用上一个响应者的
5.如果这个响应者又调用了
4、谁是上一个响应者(即:nextResbond), 每一个响应者都有一个nextResbond
1.如果当前这个view是控制器的view,那么控制器就是上一个响应者
2.如果当前这个view不是控制器的view,那么父控件就是上一个响应者。
解释:比如点击了蓝色,如果蓝色的时控制器,则此时蓝色就是上一个响应者,如果蓝色的view不是控制器的view,此时的上一个响应者是红色(红色为蓝色的父控件)
5、什么是响应者链条
1.响应者链条是由多个响应者对象构成的链条(什么是响应者对象:能处理事件的对象就是响应者对象,继承自UIResbond对象)
2.利用响应者链条,能让多个控件处理同一个触摸事件
3.怎么利用链条往上传递?即谁是上一个响应者
事件对象:UIEvent
链条的作用:当点击了某一个view的时候,view将这一个事件处理完毕,还有可能会将这个事件传递给他的上一个响应者,还可能往上继续传递
6、总结,响应者链的事件传递过程