前言
在使用MBProgressHUD这个第三方的提示框时,当频繁对它操作会出现提示框不会消失问题,这篇文章记录了自己的一种解决办法
正文
之前代码直接使用下面的代码来显示提示框,延时2秒消失,但是在做频繁显示提示框的操作时,发现提示框会一直显示在页面
[MBProgressHUD showMessage: toView: afterDelty:]
经过查阅资料,使用了下面的代码来显示可以解决当前遇到的提示框一直显示页面问题
-(void) showMessageToUI:(NSString*) message {
MBProgressHUD *progress = [MBProgressHUD showHUDAddedTo:self animated:YES];
progress.labelText = message;
[self performSelector:@selector(hideHUD:) withObject:progress afterDelay:1];
}
-(void) hideHUD:(MBProgressHUD*) progress {
__block MBProgressHUD* progressC = progress;
dispatch_async(dispatch_get_main_queue(), ^{
[progressC hide:YES];
progressC = nil;
});
}
这里dispatch_async 里面的代码比较重要
参考资料
MBProgressHUD not disappearing after calling hide
IOS关于MBProgressHUD延时之后不消失的BUG