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 = [UIApplicationsharedApplication].keyWindow;
// 快速顯示一個提示資訊
MBProgressHUD *hud = [MBProgressHUDshowHUDAddedTo:view animated:YES];
hud.labelText = text;
// 設定圖片
hud.customView = [[UIImageViewalloc]
// 再設定模式
hud.mode = MBProgressHUDModeCustomView;
// 隱藏時候從父控制元件中移除
hud.removeFromSuperViewOnHide = YES;
// 1秒之後再消失
[hud hide:YES afterDelay:0.7];
}