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

 这个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]; 

上一篇:ansibles使用


下一篇:从工作方式到云端应用,一文读懂“区块链”