2011-12-22 99 views
4

我有两个问题与活动的指标: 1.活动指示灯没有出现在UIViewController的活动指示灯显示不出来

我在的.xib文件添加活动的指标。在按钮上单击它应该开始动画。并且当收到来自服务器的响应时,在进入下一页之前应停止动画。 我这样做如下:

activityIndicator.hidden = NO; 

[activityIndicator performSelector:@selector(startAnimating) withObject:nil afterDelay:0.1]; 

[self.view bringSubviewToFront:activityIndicator]; 

....rest of code here.... 

activityIndicator.hidden = YES; 

[activityIndicator stopAnimating]; 
  1. 活动指示灯没有出现在UITableView的

对于表视图我这样做的方式相同,但在didSelectRowAtIndexPath方法...

对于tableview我也尝试添加活动视图到单元格附件,但仍未显示

在这两种情况下活动指示器没有出现。

请帮

感谢

+0

是所有这些代码在一个方法?这里的背景是什么? – 2011-12-22 06:38:10

+0

是在一种方法 – iOSDev 2011-12-22 06:42:02

回答

11

如果所有这些代码是一个方法或响应一个事件,那么所有的修改意见会,直到返回到事件循环可见。您可以将activityIndi​​cator.hidden设置为NO,然后在UI有机会刷新之前再次将其设置为YES。

你也明显停止动画,然后再启动它。

你需要做的是使活动指示器在这里可见并开始其动画。然后计划完成工作(启动一个异步网络连接,或者将一些工作放入队列中,或者无论您需要做什么),然后从此方法返回以便UI可以刷新,可以绘制指标,而动画实际上可以开始。

然后在某个点工作完成后,您可以隐藏指示器并停止动画。但是你不能在事件循环的一个回合中在主线程上完成所有这些。您的更改都不会显示,因为在执行此方法时,此处不会执行任何绘图(假设这是在主线程中)

我希望这有意义吗?

1

可能是在tableView中,而不是self.view,它会是self.navigationController.view

+0

不是一个真正的答案。只有猜测... – 2013-07-02 09:23:40

2

现在我修改了代码,以这样的:

activityIndicator.hidden = NO; 

[activityIndicator startAnimating]; 

[self performSelector:@selector(saveClicked) withObject:nil afterDelay:0.1];  

[self.view bringSubviewToFront:activityIndicator]; 

和它的工作:)