UIActivityIndi​​catorView直到加载完成后才显示

Hen*_*son 8 cocoa-touch loading objective-c uiactivityindicatorview ios

我有一个当前导航到viewcontroller的按钮,连接到IBAction.

在IBAction中,我像往常一样使用[self.view addSubView]创建一个UIActivityIndi​​catorView,然后加载一些图片.

我已经在指示器视图,视图控制器和窗口上尝试了setNeedsDisplay,但它仍然在显示指示器之前加载图片,这当然对我来说毫无用处.

所以我正在寻找一种方法来强制进行即时重绘(当我想更多关于它不太可能工作时),或者在指示符出现后加载图片的方法,或者一种方法来启动单独的线程或类似的开始动画/显示指标,或将指标放在一个单独的视图控制器中,并以某种方式强制它添加/显示自己,然后再进行图片加载.

建议?

Jac*_*kin 18

我在这种情况下做的是生成一个新线程,它释放主线程来处理UI交互,同时在后台加载东西.

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

这是一个例子:

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

在你的loadImages方法中:

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