2010-12-09 45 views
1

我有一個基於導航的Iphone應用程序。 在根視圖(UITableView)之前我想用幾個UILabels和一個UIActivityIndi​​cator來顯示一個WELCOME視圖。顯示歡迎查看活動指標,同時下載數據[iphone sdk]

當應用程序與活動指示符一起啓動時,將顯示這個歡迎視圖。 數據下載(通常解析XML並將數據從服務器存儲到本地文件系統中) 將在應用程序啓動時在後臺運行。

當下載完成時,此視圖將自動關閉並顯示包含數據的主根視圖(UITabkleView)。

我使用

-(void)viewDidLoad{ 
[self.indicator startAnimating] 
[self performSelectorInBackground:selector(startDataDownload).....]    
[self.indicator stopAnimating] 
} 

但不工作!
任何幫助將不勝感激。

感謝

回答

1

幾點建議:

你檢查這self.indicator具有價值?您的NIB或創建中可能有錯誤。

您是否正在主線程上執行數據下載?如果是這樣的話,你可能不會給活動指標一個顯示的機會。

1

什麼不起作用?

它會立即停止動畫,因爲您直接調用stopAnimating方法,而不是在後臺線程完成時。 (即:當前線程不會因爲你正在通過另一個線程在後臺加載內容而停止)。

另外,你確定你在startDataDownload方法中正確設置了線程環境嗎?

1

您可能想嘗試一個名爲MBProgressHud的框架。它包括如何實施這些類型的進度指標的示例代碼。

但是,如果你要留下你的代碼,我建議將[self.indicator stopAnimating]移動到startDataDownload完成後調用的新方法。作爲一項測試,請嘗試評論該行並查看它是否開始動畫?

2

要調用startAnimatiing和stopAnimating在queue.Call StopAnimating這樣的:

[self performselector:@selector(stop) withObject:nil afterDelay:3.0]; 


-(void)stop 
{ 
    [self.indicator stopAnimating]; 
} 
相關問題