代码之家  ›  专栏  ›  技术社区  ›  Henrik Erlandsson

UIActivityIndicatorView在加载完成之前不显示

  •  7
  • Henrik Erlandsson  · 技术社区  · 14 年前

    在iAction中,我像往常一样用[self.view addSubView]创建了一个UIActivityIndicatorView,然后加载一些图片。

    因此,我正在寻找一种方法,要么强制立即重画(如果我想得再多一点,就不太可能成功),要么在指示器出现后加载图片,要么启动一个单独的线程或类似的方法来开始动画/显示指示器,或者将指示器放在单独的viewcontroller中,然后以某种方式强制在加载到图片之前添加/显示自己。

    1 回复  |  直到 12 年前
        1
  •  18
  •   Jacob Relkin    14 年前

    在这种情况下,我要做的是生成一个新线程,在后台加载内容时释放主线程来处理UI交互。

    首先显示 UIActivityIndicatorView ,然后生成加载图像的新线程,然后在新线程中执行的方法的最后一行,隐藏 .

    下面是一个例子:

    //do stuff...
    [activityIndicatorView startAnimating];
    [NSThread detachNewThreadSelector:@selector(loadImages) toTarget:self withObject:nil];
    

    在你的 loadImages

    - (void) loadImages {
       NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
       //load images...
       [activityIndicatorView performSelectorOnMainThread:@selector(stopAnimating)];
       [pool drain];
    }