【转】iOS学习之iOS禁止Touch事件
iOS程序中有时会有需要禁止应用接收Touch的要求(比如动画进行时,防止触摸事件触发新方法)。
一、一般有两种:
1、弄个遮罩层,禁止交互;
2、使用UIApplication中的方法进行相关的交互设置,方法如下:
// 开始禁止交互 - (void)beginIgnoringInteractionEvents NS_EXTENSION_UNAVAILABLE_IOS(""); // nested. set should be set during animations & transitions to ignore touch and other events // 结束禁止交互 - (void)endIgnoringInteractionEvents NS_EXTENSION_UNAVAILABLE_IOS(""); // 是否禁止了交互 #if UIKIT_DEFINE_AS_PROPERTIES @property(nonatomic, readonly, getter=isIgnoringInteractionEvents) BOOL ignoringInteractionEvents; // returns YES if we are at least one deep in ignoring events #else - (BOOL)isIgnoringInteractionEvents; // returns YES if we are at least one deep in ignoring events #endif
二、具体在代码里的实现如下:
1、禁止交互
if (![[UIApplication sharedApplication] isIgnoringInteractionEvents]) //禁止交互 [[UIApplication sharedApplication] beginIgnoringInteractionEvents];
2、由禁止变为启用交互
if ([[UIApplication sharedApplication] isIgnoringInteractionEvents]) [[UIApplication sharedApplication] endIgnoringInteractionEvents]; //启用交互