iPhone UIActivityIndicator线程帮助!
问题描述:
我正在寻找在我可以用来显示UIActivityIndicator的主代表中创建一个通用线程。我有几个视图将新视图推入堆栈。大部分视图都是在调用视图中的didSelectRow方法中调用的。当他们在UITableView中选择一行时,我想启动Activity Indicator并将新视图推入堆栈。在新视图的viewDidLoad方法中,我使用Json多次调用服务器,这可能需要一些时间来处理。 在处理完成后,从view1中显示活动指示符并将其隐藏在view2中的最佳方式是什么?iPhone UIActivityIndicator线程帮助!
我在做梦,我可以在我的主要代表做2种方法吗?
并从view1调用[startIndicator],它将显示所有视图顶部的Activity Indicator。
毕竟处理viewDidLoad方法对你帮助这将隐藏活动指示灯
感谢与视图2调用[stopIndicator]!
答
是的,你可以,只要确保在主线程上调用任何UIKit例程。你可以使其更加“线程友好”的编写程序,如:
-(void)startIndicator {
if ([NSThread isMainThread] == FALSE) {
[self performSelectorOnMainThread:@selector(startIndicator) withObject:nil waitUntilDone:NO];
return;
}
/* Actual UIIndicator setup */
}
如果您有多个线程可以启动或停止的指标,你可能还需要一个引用计数添加到程序,增加每当某些线程调用“启动”并在他们调用“停止”时递减时,保持活动指示器持续,直到“停止”调用将计数减少到零。