现在的位置: 首页 > 综合 > 正文

iOS私有API(一) -[UIApplication _cancelAllTouches]

2013年07月27日 ⁄ 综合 ⁄ 共 578字 ⁄ 字号 评论关闭

 这个api会令当前的所有手指操作失效,即令所有的UITouch变成cancelled状态,所有的UIView和UIGestureRecognizer都会触发touchesCancelled:withEvent:事件。

使用场景:

1. 模拟UIPopoverController时的行为,当popover弹出时,其他手势都应该被cancelled掉,从而保证popover弹出后继续移动手指不会再产生事件。(UIPopoverController就有使用这个函数,UIActionSheet应该也有,UIAlertView不确定,因为它有自己的window)

2. 响应多指操作时,如果发生旋转屏幕的事件,这时候后续的响应一般很难处理,每个touch都得自己计算旋屏后的位置,不如干脆不允许用户在旋屏后操作算了,这时就可调用这个函数。

调用方法:

SEL sel = NSSelectorFromString([@"_cancel" stringByAppendingString:@"AllTouches"]);  // Private API 
assert([[UIApplication sharedApplication] respondsToSelector:sel]); 
[[UIApplication sharedApplication] performSelector:sel]; 

【上篇】
【下篇】

抱歉!评论已关闭.