我希望在自定义的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) {
}];
任何关于更有效方法的指示都非常赞赏。
干杯 NIK
答案 0 :(得分:1)
您目前在NSDictionary中执行此操作的方式是合适的。虽然为了确保尽快更新,但您可以将[self.tableView reloadData]
添加到成功块中,从那时起它将立即使用更新的数据刷新您的tableview。更好的是你可以使用reloadRowsAtIndexPaths:withRowAnimation:
并将其传递给新下载的UIImage的索引路径,这样它就不会刷新整个tableview。