没有网络的迹象我想将MBProgressHUD添加到队列中,如果队列中有MBProgressHUD显示,请不要将MBProgressHUD添加到此队列,如果队列中没有MBProgressHUD显示添加到队列中。
中文版:我想添加MBProgressHUD到一个队列中,如果这个队列中有MBProgressHUD显示,就不要添加MBProgressHUD到这个队列中,如果这个队列中没有MBProgressHUD显示则添加到这个队列中
这是我的代码,但我仍然可以看到显示批次MBProgressHUD,它们叠加在一起,不会消失
+ (void)showErrorHUD:(id)target withText:(NSString *)text{
MBProgressHUD *errorHud = nil;
if ([target isKindOfClass:[UIViewController class]]) {
errorHud = [MBProgressHUD showHUDAddedTo:[target view] animated:YES];
}
else if([target isKindOfClass:[UIWindow class]]){
errorHud = [MBProgressHUD showHUDAddedTo:target animated:YES];
}
errorHud.userInteractionEnabled = NO;// errorHud的下层视图可以响应
errorHud.mode = MBProgressHUDModeCustomView;
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_red_x"]];
errorHud.labelText = text;
errorHud.labelColor = REDCOLOR;
errorHud.customView = imageView;
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
sleep(1);
dispatch_async(dispatch_get_main_queue(), ^{
[MBProgressHUD hideHUDForView:[target isKindOfClass:[UIWindow class]] ? target : [target view] animated:YES];
});
});
}
在没有网络的手机中,APP会在调用多个网络接口时启动,然后执行以下方法以显示没有网络的迹象
[self showErrorHUD:[UIApplication sharedApplication].keyWindow withText:@"no network"];