您的位置:首页 > 移动开发

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

2013-03-18 20:30 525 查看
这个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];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: