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]到您的成功块中,但从那时起,它会立即使用更新的数据刷新您的 tableview。更好的是,您可以使用reloadRowsAtIndexPaths:withRowAnimation:并仅将新下载的 UIImage 的索引路径传递给它,这样它就不会刷新整个 tableview。

文档

于 2012-11-13T00:56:43.133 回答