UIResponder

本文深入探讨了iOS应用中碰撞检测顺序及事件处理流程,包括从blueView开始的一层层递交过程,以及如何在不同视图间进行事件响应。同时,文章详细解释了视图的用户交互默认设置,以及如何通过代码实现回收键盘的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于本图而言,碰撞检测顺序:UIApplication-->AppDelegate-->window-->RootViewController-->self.View -yellowView--greenView->blueView.事件处理的递交过程:事件从blueView开始一层一层

往外递交,该过程中一旦有对象对事件作出处理,事件递交工作就会停止.但是如果整个过程都没有对象作出处理,整个事件就会被丢弃掉.

//如果把yellowView的用户交互关闭,则对其作出响应的是RootViewController,因为self,ViewUIView类的对象,我们无法获取UIView.m文件,所以只能由最近的RootViewController对其作出响应.


对于事件的处理过程,分别是碰撞检测阶段和事件处理阶段.碰撞检测阶段产生了一个响应者链.视图的用户交互默认是开启的,如果将视图的用户交互关闭,则视图以及碰撞检测过程中视图和它上面的子视图都无法检测到碰撞事件.

注意 UIlabelUIImageVIew的用户交互默认是关闭的.其余的用户交互默认都是开启的.


回收键盘神器:

[self.view endEditing:YES]

原理:将自身视图控制器的View的所有子视图都取消第一响应者.所以View上的textField也是这样被取消了第一响应者,发生的现象就是虚拟键盘收回.因此这个方法一定要写到视图控制器上,目的是让视图控制器所带的View取消第一响应者.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值