2011-12-22 8 views
4

を表示されません。ボタンをクリックするとアニメーションが開始されます。サーバーからの応答が受信されると、次のページに進む前にアニメーションが停止するはずです。アクティビティインジケータは、私が活動の指標には2つの問題を持っている

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に...

用をやって次のように 私はそれをやっています私はまた、アクティビティビューをセルアクセサリに追加しようとしましたが、まだ表示されません。

どちらの場合も、アクティビティインジケータ表示されません。すべてこのコードは1つの方法でまたは1つのイベントに対応している場合

おかげ

+0

を働い1つの方法では、このすべてのコードですか?ここでのコンテキストは何ですか? –

+0

はい1つの方法で – iOSDev

答えて

11

を助けてください、そして、ビューへの変更のどれを使用すると、イベントループに戻るまで見えつもりはありません。 activityIndi​​cator.hiddenをNOに設定してから、UIにリフレッシュする機会がある前に再びYESに設定します。

アニメーションを開始する前に停止しているように見えます。

ここでアクティビティインジケータを表示させ、アニメーションを開始する必要があります。次に、作業をスケジュールします(非同期ネットワーク接続を開始するか、キューに作業を入れるか、何かを行う必要があります)。このメソッドから戻り、UIをリフレッシュできるようにすると、インジケータが描画され、実際にアニメーションを開始することができます。

その後、ある時点での後に作業が完了すると、インジケータを非表示にしてアニメーションを停止することができます。しかし、イベントループの1ターン以内にメインスレッド上ですべてを行うことはできません。このメソッドが実行されている間は、ここで何も描画が行われないため、変更内容は表示されません(これはメインスレッド上にあるものとします)

私は意味があると思いますか?

1

テーブルビューでは、self.viewの代わりに、self.navigationController.view ??

+0

本当の答えではありません。投機だけ... –

2

は、今私はこれまでコード変更:

activityIndicator.hidden = NO; 

[activityIndicator startAnimating]; 

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

[self.view bringSubviewToFront:activityIndicator]; 

をし、それが:)

関連する問題