UIActivityIndi​​cator无法正常工作?

时间:2010-05-27 09:22:57

标签: iphone objective-c ios uiactivityindicatorview

我有关于UIActivityIndi​​cator的问题。我在IBAction上将[spinner startAnimating]应用于按钮,然后执行某个过程。应该停止进程activityindicator然后导航到另一个视图。但活动指标不会出现。当我删除“[spinner stopAnimating]”行时,指示符会出现,但不会按下即时按钮。它出现在其他视图加载之前,显然没有出现,我的意思是它没有出现,但是如果我们非常仔细地看到它,那么它只会瞬间出现。

提前填写任何答案。

4 个答案:

答案 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,这可能有助于某人解决问题。