IOS MBProgressHUD 无法显示的问题
2016-11-14 17:53
260 查看
最近在项目里碰到了一个问题:
MBProgressHUD无法显示出来(之前在项目里也用过这个,没出现过问题)
东找西找找到下面的解决方案:
1、(“MBProgressHUD needs to be accessed on the main thread.”)报错 很明显意思是需要跑在主线程上
2、MBProgressHUD 的HUD不能立刻显示出来(在出现问题后我有试过将MBProgressHUD后面的代码都删了 – 结果是可以正常显示的,只是没有想到这一点“UIKit 不能在当前run loop结束前重画,即需要在下一个run loop 周期才能重画,更新UI。”)
使用 MBProgressHUD,如果在一个函数中添加了 HUD,又在函数结束前做了耗时操作,此时hud 不会立刻显示出来,而是需要等到函数结束后才能显示:
解决方案:
A、你下面方法运行你的耗时程序,然后在myTadk结束时隐藏 HUD
// Setup and show HUD here
[self performSelector:@selector(myTask) withObject:nil afterDelay:0.001];(没看懂)
B、你可以手动的运行 run loop(这是我使用的方法 有效)
// Setup and show HUD here
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate distantPast]];
C、使用blocks
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.001 * NSEC_PER_SEC), dispatch_get_main_queue(), ^(void){
// Insert myTask code here
});
MBProgressHUD无法显示出来(之前在项目里也用过这个,没出现过问题)
东找西找找到下面的解决方案:
1、(“MBProgressHUD needs to be accessed on the main thread.”)报错 很明显意思是需要跑在主线程上
dispatch_async(dispatch_get_main_queue(), ^{ //获取主线程 });
2、MBProgressHUD 的HUD不能立刻显示出来(在出现问题后我有试过将MBProgressHUD后面的代码都删了 – 结果是可以正常显示的,只是没有想到这一点“UIKit 不能在当前run loop结束前重画,即需要在下一个run loop 周期才能重画,更新UI。”)
使用 MBProgressHUD,如果在一个函数中添加了 HUD,又在函数结束前做了耗时操作,此时hud 不会立刻显示出来,而是需要等到函数结束后才能显示:
- (void)showSomething { MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES]; hud.mode = MBProgressHUDModeText; hud.labelText = @"Some message..."; hud.margin = 10.f; hud.removeFromSuperViewOnHide = YES; for (int i=0; i<5; i++) { // } }
解决方案:
A、你下面方法运行你的耗时程序,然后在myTadk结束时隐藏 HUD
// Setup and show HUD here
[self performSelector:@selector(myTask) withObject:nil afterDelay:0.001];(没看懂)
B、你可以手动的运行 run loop(这是我使用的方法 有效)
// Setup and show HUD here
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate distantPast]];
C、使用blocks
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.001 * NSEC_PER_SEC), dispatch_get_main_queue(), ^(void){
// Insert myTask code here
});
相关文章推荐
- iOS小问题---Xcode 6 无法显示中文键盘问题的解决
- IOS UICollectionView 添加Header无法正常显示问题解决
- iOS动画animateWithDuration:animations:无法显示动画的问题
- iOS实战演练之UIWebView无法显示问题
- angular页面在ios上title标题无法显示问题
- Tableview最后一行无法显示或者显示不全的问题IOS
- IOS学习之——mac 图片无法在windows 显示(黑图的问题)
- ios 加载本地网页 css js 无法显示问题
- 关于IOS某图片添加控件,图片从相册或拍照保存后,再次进入时点击放大图无法显示的问题
- ionic使用iframe时在iOS上无法显示网页问题处理
- storyboard在ios模拟器无法显示的问题
- IOS 使用 ArcGis sdk 在iphone 6P上无法显示 AGSDynamicMapServiceLayer 图层的问题
- 在ios中使用opencv将彩色图片转换成为灰度图,uiimageview无法显示问题
- CHM 文件无法显示内容的问题
- NET中"无法显示 XML 页。 使用 XSL 样式表无法查看 XML 输入。"问题的解决
- 关于使用Adoeb SVG Viewer在IE中无法正常显示SVG文档的问题
- 完美解决无法无法显示隐藏文件的问题(svohost.exe xsx.exe)
- Delphi7中用存储过程无法显示数据的问题
- 关于最近出现的病毒导致桌面无法显示的问题
- 解决 fedora 5 root 用户 vi 无法高亮显示问题