私はiOS開発が初めてなので、ご容赦ください。テーブルビューとスクロールビューを使用してフォトグリッドを作成しています。私の質問は、画像がサーバーからダウンロードされるまでアクティビティインジケーターをロードしてから、画像を表示してアクティビティインジケーターを削除するにはどうすればよいですか?
サードパーティのライブラリがどのように機能するかを理解したいので、サードパーティのライブラリには近づかないようにしています。
私はiOS開発が初めてなので、ご容赦ください。テーブルビューとスクロールビューを使用してフォトグリッドを作成しています。私の質問は、画像がサーバーからダウンロードされるまでアクティビティインジケーターをロードしてから、画像を表示してアクティビティインジケーターを削除するにはどうすればよいですか?
サードパーティのライブラリがどのように機能するかを理解したいので、サードパーティのライブラリには近づかないようにしています。
ビューに (Interface Builder または手動で) アクティビティ インジケーターを配置します。プロパティを「アニメーションしていないときは隠す」に設定します。
サーバー呼び出しを行う場合は、[activityIndicator startAnimating] (IBOutlet プロパティ) を呼び出します。実際の画像で返す場合は[activityIndicator stopAnimating]を呼び出します。止まると自動で隠れます。
iPhone/Pad ステータス バーのアクティビティ インジケータを使用することもできます。これを行うには、[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES] を使用します。非表示にするにはNOに設定します...(明らかに)
画像のダウンロードのサンプルについては、画像の非同期ダウンロードをご覧ください。didReceiveData 関数でアクティビティ インジケーターを停止します。
ここで、画像のダウンロードに使用できる 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
}];
}