2011-12-22 96 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]; 

和它的工作:)