使用 UIAlertController 弹出对话框时,想支持用户点击空白处能自动隐藏对话框;
按照 UIAlertControllerStyleActionSheet 点击空白处不隐藏问题 设置 UIAlertActionStyleCancel
时,需要 Style 为 UIAlertControllerStyleActionSheet 能生效,当设置为 UIAlertControllerStyleAlert
并没有效果;
请问有办法实现此效果吗??
使用 UIAlertController 弹出对话框时,想支持用户点击空白处能自动隐藏对话框;
按照 UIAlertControllerStyleActionSheet 点击空白处不隐藏问题 设置 UIAlertActionStyleCancel
时,需要 Style 为 UIAlertControllerStyleActionSheet 能生效,当设置为 UIAlertControllerStyleAlert
并没有效果;
请问有办法实现此效果吗??
UIAlertControllerStyleAlert
本来就是类似于之前的 UIAlertView
,警告弹窗,所以点击空白不会消失而是必须强制做出选择。
基本上你要实现这种效果有两种方式:
UIAlertController
实现说一下 2 的一个思路:
继承一个 UIAlertController
,在视图显示出来的时候取到空白视图,添加手势,当点击的时候关闭 alert。
- (void)viewDidLoad {
[super viewDidLoad];
self.closeGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(closeAlert:)];
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
UIView *superView = self.view.superview;
if (![superView.gestureRecognizers containsObject:self.closeGesture]) {
[superView addGestureRecognizer:self.closeGesture];
superView.userInteractionEnabled = YES;
}
}
- (void)closeAlert:(UITapGestureRecognizer *) gesture{
[self dismissViewControllerAnimated:YES completion:nil];
}
4 回答4.7k 阅读
2 回答2k 阅读✓ 已解决
1 回答1.5k 阅读✓ 已解决
2 回答1.6k 阅读
1 回答1.5k 阅读
1 回答1.5k 阅读
840 阅读
原理
思路