我有关于UIActivityIndicator的问题。我在IBAction上将[spinner startAnimating]
应用于按钮,然后执行某个过程。应该停止进程activityindicator然后导航到另一个视图。但活动指标不会出现。当我删除“[spinner stopAnimating]”行时,指示符会出现,但不会按下即时按钮。它出现在其他视图加载之前,显然没有出现,我的意思是它没有出现,但是如果我们非常仔细地看到它,那么它只会瞬间出现。
提前填写任何答案。
答案 0 :(得分:11)
Ole非常正确,但有一个技巧你不介意同步处理(通常是你想要首先显示活动指标的原因)。
首先移动要在微调器处理自己的方法时要处理的代码。然后做
[spinner startAnimating];
[self performSelector:@selector(methodname) withObject:nil afterDelay:0];
afterDelay:0表示下次通过运行循环。这样微调器开始了。
答案 1 :(得分:4)
在代码将控制权返回到运行循环之前,动画不会启动。如果您的处理任务阻止主线程,则在完成之前将不进行UI更新。您应该异步进行处理(例如,通过启动NSOperation
)。
答案 2 :(得分:4)
你应该在执行选择器中运行。
代表:
[self performSelector:@selector(animation) withObject:nil afterDelay:0]
-(void)animation
{
NSAutoreleasepool *pool = [[NSAutorepleasepool alloc]init];
[indicatorView startAnimating];
[pool release];
}
答案 3 :(得分:0)
这是一个老问题。我留下了答案here,这可能有助于某人解决问题。