UIActivityIndicator工作不正常?
我有一个关于UIActivityIndicator的问题。 我在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
)。
这是一个古老的问题。 我在这里留下我的答案,这样可以帮助别人解决他们的问题。