0

カスタム tableviewcell 内に画像を設定し、返された画像の高さを heightForRowAtIndexPath メソッド内で使用しようとしています。

この返されたデータを heightForRowAtIndexPath メソッドに取得する方法はありますか? 現在、私はローカル辞書を使用しており、以下のように設定しています:

   NSURLRequest* urlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:recent.show.showImage] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:30];


   [cell.imageView setImageWithURLRequest:urlRequest placeholderImage:[UIImage imageNamed:@"icon"] success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {

       NSNumber *imageHeight = [[NSNumber alloc] initWithFloat:image.size.height];
       NSString *indexString = [NSString stringWithFormat:@"%d", indexPath.row];
       [self.returnedImages setValue:imageHeight forKey:indexString];
       [imageHeight release];

   } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {

   }];

より効率的なアプローチに関する指針は大歓迎です。

乾杯ニック

4

1 に答える 1

1

現在 NSDictionary でこれを行っている方法は適切です。できるだけ早く更新されるようにする[self.tableView reloadData]ために、成功ブロックに追加することもできますが、それ以降は、更新されたデータでテーブルビューがすぐに更新されます。を使用してreloadRowsAtIndexPaths:withRowAnimation:、新しくダウンロードした UIImage のインデックス パスだけを渡すと、テーブルビュー全体が更新されなくなります。

ドキュメント

于 2012-11-13T00:56:43.133 に答える