2009-05-15 13 views
0

URLから画像をダウンロードしようとしていて、ファイルがダウンロード中であることを示すためにアクティビティインジケータをアニメーションで表示しようとしています。しかし、私がこのダウンロード機能を呼び出すと、私のインジケータがアニメ化されていないので、それは機能しません。URLからダウンロードするとUIActivityIndi​​catorの問題が発生する

-(void)download{ 
    [indicator startAnimating]; 
    NSString *[email protected]"http://www.xyz.com/path/pic.jpg; 
    NSData *downloadData=[NSData dataWithContentsOfURL:[ NSURL URLWithString:downloadPath]]; 
    if(downloadData){ 
      //do something 
      [indicator stopAnimating]; 
    } 
     else{ 
     //do something 
     [indicator stopAnimating]; 
      } 
    } 
+0

本当ですか? stopAnimating行を削除します。私の経験では、start/stopAnimatingの間隔が「短く」なると、それは表示されません。 – freespace

+0

stopAnimatingを取り出すと、インジケータはデータのダウンロードが完了した後にアニメーション化されますが、関数が呼び出されると開始しません –

答えて

0

[indicator startAnimating]と[indicator stopAnimating]を入力する必要があります。別の方法でメソッドが終了するまで、アニメーションがキックオフされないと私は信じています。あなたはいくつかの方法にこれを分けるのであれば、これはあなたのアニメーション

  • ファイルをダウンロードする方法の一つを開始

    • 一つの方法を動作するはずです。
    • アニメーションを停止する1つの方法。

    もう1つの選択肢は、これを実現するためのスレッドです。詳細情報here

  • 0

    アニメーションは、コードと同じスレッド内のイベントループで実行されます。つまり、コードの実行中にアニメーションが開始されません。

    代わりに、アニメーションを忘れるか、非同期ダウンロード方法を使用するか、別のスレッドでダウンロードを実行する必要があります。私は非同期オプションをお勧めします。

    関連する問題