2

少し奇妙に聞こえますが、私は糸車インジケーターを使用しているため、最初の画像ビュー (最初の画面に表示されたもの) では遅延画像読み込みが機能しません。ユーザーが 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呼び出されません。

4

0 に答える 0