美文网首页
MBProgressHUD不显示

MBProgressHUD不显示

作者: 昵称2017 | 来源:发表于2018-01-25 15:21 被阅读0次

今天写代码时发现hud没有显示出来,把耗时操作注释掉就可以显示出来,找到资料说出现原因是:UIKit 不能在当前run loop结束前重画,即需要在下一个run loop 周期才能重画,更新UI。

在这里记录一下方便以后查看:

出现问题情况:如下例子中,要等到for循环结束后才能显示出来。

- (IBAction)showTextOnly:(id)sender {

    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++) {

        sleep(1);

    }

}

解决方案:

1.在下面方法运行你的耗时程序,然后在myTadk结束时隐藏 HUD

[self performSelector:@selector(myTask) withObject:nil afterDelay:0.001];

2.可以手动运行 run loop

[[NSRunLoop currentRunLoop] runUntilDate:[NSDate distantPast]];

3.使用blocks

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.001 * NSEC_PER_SEC), dispatch_get_main_queue(), ^(void){

// Insert myTask code here

});

相关文章

  • iOS-MBProgressHUD使用

    1,MBProgressHUD常用属性和用法Demo //任务,测试进度显示 MBProgressHUD 使用详解...

  • MBProgressHud 换行显示

    一般来说,app里面的单纯的文本提示信息不会太长,一行肯定可以显示完全,所以用MBProgressHud在加上一个...

  • MBProgressHUD不显示

    今天写代码时发现hud没有显示出来,把耗时操作注释掉就可以显示出来,找到资料说出现原因是:UIKit 不能在当前r...

  • MBProgressHUD详解(一)

    MBProgressHUD详解(一) MBProgressHUD是一个显示HUD窗口的第三方类库,源码点击这里 ...

  • 令我费解的iOS Bug整理以及解决方法

    在使用MBProgressHUD后进行耗时操作时不立即显示的问题原因及解决方法:https://www.jians...

  • MBProgressHUD不能立即显示

    使用MBProgressHUD,在某一个耗时的函数之前已经进行操作,但没有立即显示,只是在这个耗时函数执行完之后才...

  • MBProgressHud怎样换行显示

    怎么样,是不是很简单~

  • MBProgressHUD不能立即显示

    使用MBProgressHUD,在某一个耗时的函数之前已经进行操作,但没有立即显示,只是在这个耗时函数执行完之后才...

  • iOS使用MBProgressHUD出现的坑

    今天在使用MBProgressHUD时崩了,提示如下图 显示错误提示MBMainThreadAssert(); 点...

  • UIWindow和系统键盘

    MBProgressHUD显示与键盘显示冲突的问题原代码是一个查询界面,输入完查询内容,点击查询按钮,然后就显示[...

网友评论

      本文标题:MBProgressHUD不显示

      本文链接:https://www.haomeiwen.com/subject/svpvaxtx.html