这个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];
本文介绍了一个私有API的使用方法,该API可以取消所有的UITouch事件,使所有的UIView和UIGestureRecognizer触发touchesCancelled:withEvent:事件。适用于模拟UIPopoverController行为及处理屏幕旋转后的多指操作。
1523

被折叠的 条评论
为什么被折叠?



