iPhone/iPad调整事件递交 endIgnoringInteractionEvents

来源:互联网 发布:who生长曲线软件 编辑:程序博客网 时间:2024/05/16 09:11
http://www.devdiv.com/home.php?mod=space&uid=8639&do=blog&id=4076
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 0
原创粉丝点击