«

iOS UIAlertController点击空白处消失

然后呢 发布于 阅读:112 iOS


#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface UIAlertController (TapGesAlertController)

- (void)tapGesAlert;

@end

#import "UIAlertController+TapGesAlertController.h"

@implementation UIAlertController (TapGesAlertController)

- (void)tapGesAlert{

  NSArray * arrayViews = [UIApplication sharedApplication].keyWindow.subviews;
    if (arrayViews.count>0) {
        //array会有两个对象,一个是UILayoutContainerView,另外一个是UITransitionView,我们找到最后一个
        UIView * backView = arrayViews.lastObject;
        backView.userInteractionEnabled = YES;
        UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tap)];
        [backView addGestureRecognizer:tap];
    }

}

-(void)tap
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

@end