2011-02-17 32 views

回答

1

我不確定,但我懷疑它可以在後臺線程上運行viewDidLoad。如果這是真的,則在運行viewDidLoad時無法爲活動指示器設置動畫。

所以,如果我是你,我會弄清楚什麼需要viewDidLoad這麼久,並把它放到一個可以在後臺運行的方法。

然後在您的viewWillAppear方法中添加活動指示器視圖,並在完成後臺任務時將其刪除。

根據你在viewDidLoad中做的事情,這可能需要大量的重構和添加委託方法。
我想你正在下載應該顯示的東西。

1

嘗試移動這些花費很長時間進入viewDidAppear的東西。然後,你可以創建一個活動的指標一個新的觀點,並有它明顯的(最簡單的界面生成器),一旦所有的東西只是做致電:

[loadingView setHidden:YES]; 

好運

1

[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];視圖從你可以在這裏調用緩慢的加載視圖控制器,或者如果慢啓動器是初始視圖,則調用appDidFinishLoading。

此外,考慮將花費很長時間的活動從主線程移動到後臺線程,以保持GUI始終響應。

3

嘗試通過Matej Bukovinski MBProgressHUD。在後臺

HUD = [[MBProgressHUD alloc] initWithView:self.navigationController.view]; 
[self.navigationController.view addSubview:HUD]; 
HUD.delegate = self; 
HUD.labelText = @"Loading"; 
[HUD showWhileExecuting:@selector(getStartupData:) 
       onTarget:self 
      withObject:nil 
       animated:YES] 

如果你想在主線程數據

https://github.com/matej/MBProgressHUD

獲取數據,只顯示HUD,然後駁回通知的時候。

HUD = [[MBProgressHUD alloc] initWithView:self.tableView]; 
[self.tableView addSubview:HUD]; 
HUD.labelText = @"Loading"; 
HUD.tag = 998; 
[HUD show:YES]; 
[HUD release]; 
1

你可以做到這一點在viewDidLoad中

UIAactivityIndicatorView * date = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(150, 150, 30, 30)]; 
[date setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray]; 
[self.view addsubview:date]; 
[date startAnimating]; 

很簡單 加載頁面視圖後,有ü停止 [日期stopAnimating]動畫胡亞蓉指標;

這將工作

相關問題