UIActivityIndi​​cator工作不正常?

我有一个关于UIActivityIndi​​cator的问题。 我在IBAction的一个button上应用了[spinner startAnimating] ,然后做了一些处理。 应该停止进程activityindicator,然后导航到另一个视图。 但是活动指示不会出现。 当我删除线“[微调停止animation]”,然后指示器出现,但不是在即时button被按下。 它出现在另一个视图加载之前,显然没有出现,我的意思是没有出现,但如果我们仔细看,那么只有它出现一瞬间。

提前感谢任何答案。

Ole是非常正确的,但有一个你不介意同步处理的技巧(通常是你为什么要显示活动指标)。

首先移动你想要处理的代码,而微调控制器则使用自己的方法。 然后做

 [spinner startAnimating]; [self performSelector:@selector(methodname) withObject:nil afterDelay:0]; 

afterDelay:0表示下一次通过运行循环。 这样微调开始。

你应该在执行select器中运行。

例如:

 [self performSelector:@selector(animation) withObject:nil afterDelay:0] -(void)animation { NSAutoreleasepool *pool = [[NSAutorepleasepool alloc]init]; [indicatorView startAnimating]; [pool release]; } 

直到代码将控制权返回给运行循环,animation才会启动。 如果您的处理任务阻塞了主线程,那么在完成之前将不会发生UI更新。 你应该做asynchronous处理(例如通过启动一个NSOperation )。

这是一个古老的问题。 我在这里留下我的答案,这样可以帮助别人解决他们的问题。