iOS11 解决MBProgressHUD弹框不显示问题

在iOS11上,多了一个_UIInteractiveHighlightEffectWindow类型窗口,hidden = YES。MBProgressHUD使用[[UIApplication shareApplication] lastObject]获取最上层窗口并添加,此时拿到的窗口为_UIInteractiveHighlightEffectWindow,并不可见。

解决办法: 将MBProgressHUD中获取最上层窗口的方法([[UIApplication shareApplication] lastObject])替换成[UIApplication shareApplication].keyWindow即可。

e.g.

+ (void)show:(NSString *)text icon:(NSString *)icon view:(UIView *)view

{

    if (view == nil) view = [UIApplication sharedApplication].keyWindow;

    // 快速显示一个提示信息

    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES];

    hud.labelText = text;

    // 设置图片

    hud.customView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"MBProgressHUD.bundle/%@", icon]]];

    // 再设置模式

    hud.mode = MBProgressHUDModeCustomView;

    

    // 隐藏时候从父控件中移除

    hud.removeFromSuperViewOnHide = YES;

    

    // 1秒之后再消失

    [hud hide:YES afterDelay:0.7];

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值