调整事件递交

UIKit 为应用程序提供了编程手段来简化事件处理或者完全关闭事件流。下面的列表总结了这些方法:

§                  关闭触摸事件的递交。 缺省情况下,视图接收触摸事件,但 是你可以设置它的 userInteractionEnabled 属性为 NO 来关闭事件提交。视图在隐藏或透明 时也不会接收事件。

§                  在一段时间内关闭触摸事件的递交。 应用程序可以调用 UIApplication 方法 beginIgnoringInteractionEvents 并稍后 调用 endIgnoringInteractionEvents 方法。 第一个方法使应用程序完全停止接收触摸事件消息;第二个方法恢复接收消息。有些时候你想关掉事件接收比如正在执行动画。

§                  开启多点触摸的递交 缺省情况下,视图忽略多点触摸事件 序列中除了第一次触摸以外的其它所有事件。如果你想这个视图处理多点触摸,你必须为这个视图开启这个能力。通过编程设置你的视图的 multipleTouchEnabled 属性为 YES 或者在 Interface Builder 这个视图的 inspector 里设置相关属性。

§                  限制事件递交给单个视图。 缺省情况下,一个视图的 exclusiveTouch 属性被设置为 NO 这意味着这个视图不会阻塞该窗口中 的其它视图接收触摸事件。如果你把这个属性设置为 YES ,你标记这个视图以便,当它跟踪触摸 时,它是当前窗口中唯一可以跟踪触摸的视图。窗口中的其它视图将不能接收触摸事件。不过,被标记为“ exclusive touch ”的视图不能接收相同窗口中其它视图相关的触摸事件。如果一个手指接触了一个 exclusive-touch 视图, 那么这个触摸事件仅在该视图是当前 窗口中唯一跟踪这个手指的视图时才会被递交出去。如果一个手指触摸了一个 non-exclusive 视图, 那么这个触摸事件仅在没有其它手指 被一个 exclusive-touch 视图跟踪时才会被递交出去。

§                  限制事件递交给子视图。 一个自定义 UIView 类可以 重写 hitTest:withEvent: 来限制多点触摸事件递交给它的子视 图。请查看关于这个技术的讨论 “Hit-Testing”

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值