1

ナビゲーションベースの Iphone アプリケーションがあります。ルート ビュー (UITableView) の前に、いくつかの UILabels と UIActivityIndi​​cator を含む WELCOME ビューを表示したいと考えています。

この WELCOME ビューは、アクティビティ インジケーターを使用してアプリケーションを起動すると表示されます。データのダウンロード (通常、XML を解析し、サーバーからローカル ファイル システムにデータを保存する) は、アプリケーションの起動時にバックグラウンドで実行されます。

ダウンロードが完了すると、このビューは自動的に閉じられ、メインのルート ビュー (UITabkleView) がデータとともに表示されます。

私は使っている

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

しかし、機能していません!!!
どんな助けでも大歓迎です。

ありがとう

4

4 に答える 4

2

次のように queue.Call StopAnimating で startAnimatiing と stopAnimating を呼び出しています。

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


-(void)stop
{
   [self.indicator stopAnimating];
}
于 2012-08-08T11:59:34.187 に答える
1

MBProgressHudというフレームワークを試してみてください。これらの種類の進行状況インジケーターを実装する方法に関するサンプル コードが含まれています。

しかし、コードにとどまる場合は、完了[self.indicator stopAnimating]後に呼び出される新しいメソッドに移行することをお勧めしますstartDataDownload。テストとして、その行をコメントアウトして、アニメーションが開始されるかどうかを確認してみてください。

于 2010-12-09T16:42:09.267 に答える
1

何が機能していないのですか?

バックグラウンド スレッドが終了したときではなく、すぐに stopAnimating メソッドを呼び出しているため、アニメーションは明らかに即座に停止します。(つまり、別のスレッドを介してバックグラウンドで何かをロードしているという理由だけで、現在のスレッドが停止することはありません。)

また、startDataDownload メソッドでスレッド環境を正しく設定していますか?

于 2010-12-09T15:02:58.597 に答える
1

いくつかの提案:

self.indicator に値があることを確認しましたか? NIB または作成にエラーがある可能性があります。

メインスレッドでデータのダウンロードを行っていますか? その場合は、アクティビティ インジケーターを表示する機会を与えていない可能性があります。

于 2010-12-09T15:01:56.950 に答える