NSURL *url = [NSURL URLWithString:@"http://i0.kym-cdn.com/entries/icons/original/000/005/545/OpoQQ.jpg?1302279173"];
NSData *data = [NSData dataWithContentsOfURL:url];
imageView.image = [[[UIImage imageWithData:data];
ダウンロード中に進行状況バーを設定したい。
そのメソッドを使用してプログレス コールバックを取得することはできません。
と を使用する必要がありNSURLConnection
ますNSURLConnectionDataDelegate
。
その後NSURLConnection
、 は非同期で実行され、そのデリゲートにコールバックが送信されます。
主に見られるのは…
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response;
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error;
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;
と
- (void)connectionDidFinishLoading:(NSURLConnection *)connection;
これらはすべて、すでに行っていることを行うための接続を取得するために使用されます。
編集
実際、以下のマークの回答を参照してください。正しいです。
ビューの読み込みに MBProgress Hud クラスを使用できます。ここから 2 つのクラスのみをダウンロードできます:- https://github.com/jdg/MBProgressHUD データをロードするクラスにこのコードを記述した後、例:viewDidLoad でこれを記述します。
- (void) viewDidLoad
{
MBProgressHud *spinner = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
spinner.mode = MBProgressHUDModeCustomView;
[spinner setLabelText:@"Loading....."];
[spinner setLabelFont:[UIFont systemFontOfSize:15]];
[spinner show:YES];
[self performSelectorInBackground:@selector(getData) withObject:nil];
}
- (void) getData
{
NSURL *url = [NSURL URLWithString:@"http://i0.kym-cdn.com/entries/icons/original/000/005/545/OpoQQ.jpg?1302279173"];
NSData *data = [NSData dataWithContentsOfURL:url];
imageView.image = [[[UIImage imageWithData:data];
[spinner hide:YES];
[spinner removeFromSuperViewOnHide];
}