少し奇妙に聞こえますが、私は糸車インジケーターを使用しているため、最初の画像ビュー (最初の画面に表示されたもの) では遅延画像読み込みが機能しません。ユーザーが TableView 内の他のすべての画像を下にスクロールすると、遅延ダウンロードによって正しく読み込まれます。
主な問題は、それNSURLConnection
が を呼び出さなかったことdidReceiveData
です。
- (void)startDownload
{
self.activeDownload = [NSMutableData data];
BOOL firstCell = (self.indexPathInTableView.row==0 && self.indexPathInTableView.section==0);
if(firstCell){
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:
[NSURLRequest requestWithURL:
[NSURL URLWithString:newsContent.title_picture]] delegate:self];
NSLog(@"Get Title Pic %@ (%@)",newsContent.title, newsContent.title_picture);
self.imageConnection = conn;
}else{
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:
[NSURLRequest requestWithURL:
[NSURL URLWithString:newsContent.cover_picture]] delegate:self];
NSLog(@"Get Thumb Pic %@ (%@)",newsContent.title, newsContent.cover_picture);
self.imageConnection = conn;
}
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
NSLog(@"[NewsPicture][connection]didReceiveData");
[self.activeDownload appendData:data];
}
編集:追加didReceiveResponse
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSLog(@"[NewsPicture][connection]didReceiveResponse");
}
ログ " Get Thumb Pic ... (...) " を正しい URL で取得しますが、最初の 5 行 (iPhone 4 の画面いっぱいに表示されます) についてはログ "を取得しません。[NewsPicture][connection]didReceiveData ".
これは、インジケーターを呼び出す方法です。
// Spinning Wheel
HUD = [[MBProgressHUD alloc] initWithView:self.view];
HUD.tag = 1000;
[self.view addSubview:HUD];
HUD.delegate = self;
HUD.labelText = @"wird geladen";
HUD.minShowTime = 25;
HUD.dimBackground = YES;
[HUD show:true];
[HUD showWhileExecuting:@selector(doWhileLoadingNews) onTarget:self withObject:nil animated:NO];
そして、私が電話するだけなら
[self doWhileLoadingNews];
この場所ではすべて正常に動作しますが、データをロードするためのインジケーターはありません。
どうすれば修正できますか?(必要に応じて、コードや情報をさらに投稿できます)
編集:まだ修正できませんでした。「didReceiveData」を呼び出して別の方法で結果をキャッチすることは可能ですか?
編集:追加されましdidReceiveResponse
たが、同じ結果になり、didReceiveResponse
呼び出されません。