iOS11自定义弹窗不显示/HUD不消失的问题

最近在运行的一个老项目一直出现iOS11兼容性的问题,iOS10以及之前的版本都没问题,唯独iOS 11出现各种弹窗不展示,或者不消失的问题,翻看了源代码,发现是上一个人的锅。

iOS10之前
[[[UIApplication sharedApplication] windows].lastObject addSubview:myaleView];
都是可以的。Applicationwindows最后一个对象总能找到当前的window
iOS 11并不兼容的原因是这样的写法并不能找到当前的window,用keyWindow就没为题了
[[UIApplication sharedApplication].keyWindow addSubview:myaleView];

总之command+f 或搜索整个项目[[[UIApplication sharedApplication] windows].lastObject addSubview:然后把find改成replace。全部都替换成[[UIApplication sharedApplication].keyWindow addSubview:就OK了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XNProgressHUD (https://github.com/LuohanCC/XNProgressHUD) 一款支持支持自定义的轻量级HUD,支持垂直、水平两种样式。SVProgressHUD非常灵活,所见的部分都可根据自己的要求进行自定义,包括自义动画效果或图片,只需要实现相关协议方法。 安装使用 pod 'XNProgressHUD' 使用说明 在Window上显示: [XNHUD showLoadingWithTitle:@"正在登录"]; [XNHUD showWithTitle:@"这是一个支持自定义的轻量级HUD"]; [XNHUD showInfoWithTitle:@"邮箱地址不能为空"]; [XNHUD showErrorWithTitle:@"拒绝访问"]; [XNHUD showSuccessWithTitle:@"操作成功"]; 在ViewController上显示(maskType.enable=true时,导航栏依然可以接受点击事件) // 引入'UIViewController XNProgressHUD.h' [self.hud showLoadingWithTitle:@"正在登录"]; [self.hud showWithTitle:@"这是一个支持自定义的轻量级HUD"]; [self.hud showInfoWithTitle:@"邮箱地址不能为空"]; [self.hud showErrorWithTitle:@"拒绝访问"]; [self.hud showSuccessWithTitle:@"操作成功"]; // 设置显示位置 [XNHUD setPosition:CGPointMake(self.view.bounds.size.width/2, self.view.bounds.size.height * 0.7)]; // 设置主色调 [XNHUD setTintColor:[UIColor colorWithRed:38/255.0 green:50/255.0 blue:56/255.0 alpha:0.8]]; // 设置相应的maskType转态下的颜色(16进制颜色值) [XNHUD setMaskType:(XNProgressHUDMaskTypeBlack) hexColor:0x00000044]; [XNHUD setMaskType:(XNProgressHUDMaskTypeCustom) hexColor:0xff000044]; 属性和方法说明 显示时长minimumDelayDismissDuration作用于非加载样式的视图:XNRefreshViewStyleInfoImage、XNRefreshViewStyleError、XNRefreshViewStyleSuccess; 显示时长maximumDelayDismissDuration作用与加载样式的视图:XNRefreshViewStyleLoading、XNRefreshViewStyleProgress。 @property (nonatomic, assign) NSTimeInterval minimumDelayDismissDuration; //default:1.5f @property (nonatomic, assign) NSTimeInterval maximumDelayDismissDuration; //default:20.f 延时显示时间和延时消失时间,该方法只对下一次HUD显示生效(只生效一次)。 [XNHUD setDisposableDelayResponse:1.0f delayDismiss:2.0f]; 设置排列方向,默认为水平方向 [XNHUD setOrientation:XNProgressHUDOrientationHorizontal]; 自定义XNProgressHUD 如果需要自定义加载视图的显示内容和动画样式,请重写XNRefreshView并实现XNRefreshViewProtocol中的协议方法即可,具体如下 1.自定义XNRefreshView并实现XNRefreshViewProtocol中的协议方法; 2.继承XNProgressHUD并实现XNProgressHUDMethod中的协议方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值