【转】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];   //启用交互

 

 

posted @ 2017-03-05 14:32  墨隐于非  阅读(1599)  评论(0编辑  收藏  举报