52、iOS开发中的事件处理机制深度解析

iOS开发中的事件处理机制深度解析

1. 控制事件与目标 - 动作对

控制事件可以有多个目标 - 动作对。这可能是有意配置的结果,也可能是意外造成的。若在不删除现有目标 - 动作对的情况下,无意中为控制事件添加新的目标 - 动作对,就容易引发难以排查的问题。例如,在nib文件中建立了动作连接,又在代码里配置了调度表,那么点击按钮时, buttonPressed(_:) 方法可能会被调用两次。

动作选择器的签名有三种形式:
- 最完整的形式需要两个参数:
- 控件本身。
- 触发控制事件的 UIEvent
- 较常用的简短形式省略了第二个参数,如 buttonPressed(_:) ,它只接收一个参数,当通过按钮发出的动作消息调用该方法时,其参数是对按钮的引用。
- 更简短的形式则省略了两个参数。

UIEvent 是用于将触摸事件传达给应用程序的底层对象,它本质上是一个时间戳( Double 类型)以及一组触摸事件( UITouch )。动作机制会屏蔽触摸事件的复杂性,但如果需要处理这些复杂性,可以通过接收 UIEvent 来实现。不过,动作选择器的参数无法告知是哪个控制事件触发了当前调用。因此,要区分 Touch Up Inside Touch Up Outside 控制事件,对应的目标 - 动作对必须指定不同的动作处理程序。

2. 响

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值