我在异步下载并放入UIImage变量后将图像加载到UITableViewCell时遇到问题。
图像看起来比实际小!但是当向下滚动并向上滚动到图像,或者整个表重新加载时,它们会以正确的大小显示...
这是一段代码摘录......
- (void)reviewImageDidLoad:(NSIndexPath *)indexPath
{
ThumbDownloader *thumbDownloader = [imageDownloadsInProgress objectForKey:indexPath];
if (thumbDownloader != nil)
{
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:thumbDownloader.indexPathInTableView];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.4];
[self.tableView cellForRowAtIndexPath:indexPath].imageView.alpha = 0.0;
[UIView commitAnimations];
cell.imageView.image = thumbDownloader.review.thumb;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.4];
[self.tableView cellForRowAtIndexPath:indexPath].imageView.alpha = 1.0;
[UIView commitAnimations];
}
}
以下是调用此方法后应用程序的图像..
http://www.flickr.com/photos/arbarlow/5288563627/
在调用tableView reloadData或滚动显示正确后,转到下一个flickr图像,查看正常结果,但我相信你可以猜到..
有没有人有想法使图像正确显示?我绝对难倒?!
此致 亚历克斯 iPhone菜鸟
答案 0 :(得分:0)
我认为调用cellForRowAtIndexPath不一定会返回正在显示的单元格(至少不是故意的)。相反,你应该尝试
[tableView beginUpdates];
[tableView reloadRowsAtIndexPaths:...];
[tableView endUpdates];
并更改cellForRowAtIndexPath的实现以更新图像,设置动画等...