2

私はiOS開発が初めてなので、ご容赦ください。テーブルビューとスクロールビューを使用してフォトグリッドを作成しています。私の質問は、画像がサーバーからダウンロードされるまでアクティビティインジケーターをロードしてから、画像を表示してアクティビティインジケーターを削除するにはどうすればよいですか?

サードパーティのライブラリがどのように機能するかを理解したいので、サードパーティのライブラリには近づかないようにしています。

4

2 に答える 2

4

ビューに (Interface Builder または手動で) アクティビティ インジケーターを配置します。プロパティを「アニメーションしていないときは隠す」に設定します。

サーバー呼び出しを行う場合は、[activityIndi​​cator startAnimating] (IBOutlet プロパティ) を呼び出します。実際の画像で返す場合は[activityIndi​​cator stopAnimating]を呼び出します。止まると自動で隠れます。

iPhone/Pad ステータス バーのアクティビティ インジケータを使用することもできます。これを行うには、[[UIApplication sharedApplication] setNetworkActivityIndi​​catorVisible:YES] を使用します。非表示にするにはNOに設定します...(明らかに)

画像のダウンロードのサンプルについては、画像の非同期ダウンロードをご覧ください。didReceiveData 関数でアクティビティ インジケーターを停止します。

于 2012-04-30T06:23:32.573 に答える
0

https://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCsQFjAA&url=https%3A%2F%2Fgithub.com%2Fjakemarsh%2FJMImageCache&ei=UEp7U_W2GoWB8gWShIGgBQ&usg= AFQjCNEc0a59K2wEOlZ2IbapWhVc87kHmg&bvm=bv.67229260,d.dGc

ここで、画像のダウンロードに使用できる JMImage キャッシュ ファイルを見つけることができます。

UIImageView+JMImageCache.m ファイルを変更する必要があります

    if(i) {
        dispatch_async(dispatch_get_main_queue(), ^{
            safeSelf.jm_imageURL = nil;

            safeSelf.image = i;

            [safeSelf setNeedsLayout];
            [safeSelf setNeedsDisplay];

            if (completionBlock) {
                completionBlock(i).
            }
        });

次にメソッドを使用します

enter code here

{

[yourImageView setImageWithURL:[NSURL URLWithString:urlString] placeholder:[UIImage imageNamed:@"placeholder"] completionBlock:^(UIImage *image) { // ここで追加されたアクティビティ インジケーターを削除します

}failureBlock:^(NSURLRequest *req,NSURLResponse *resp,NSError *error)
{
// show error message
}];

}

于 2014-05-20T12:35:22.070 に答える