我在当前导航到视图控制器上有一个按钮,连接到 IBAction。
在 IBAction 中,我像往常一样使用 [self.view addSubView] 创建一个 UIActivityIndicatorView,然后加载一些图片。
我已经在指示器视图、视图控制器和窗口上尝试过 setNeedsDisplay,但它仍然在显示指示器之前加载图片,这对我来说当然毫无用处。
因此,我正在寻找一种方法来强制立即重绘(当我多想一点时,它不太可能起作用),或者一种在指示器出现后加载图片的方法,或者一种启动单独的线程或类似的开始动画/显示指示器,或者将指示器放在单独的视图控制器中,并以某种方式强制它在继续图片加载之前添加/显示自身。
建议?
在这种情况下,我所做的就是生成一个新线程,这会在后台加载内容时释放主线程来处理 UI 交互。
首先展示的是UIActivityIndicatorView
,然后生成一个加载图像的新线程,然后在新线程中执行的方法的最后一行隐藏UIActivityIndicatorView
.
这是一个例子:
//do stuff...
[activityIndicatorView startAnimating];
[NSThread detachNewThreadSelector:@selector(loadImages) toTarget:self withObject:nil];
In your loadImages
method:
- (void) loadImages {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
//load images...
[activityIndicatorView performSelectorOnMainThread:@selector(stopAnimating)];
[pool drain];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)