我可以更新detailTextLabel.text,UITableViewCell会在运行时显示更改,但如果我尝试更新imageView.image,则不会更改可见图像。知道为什么?我曾尝试在UITableViewCell上调用刷新,但没有用。
-(void)getImageForURL:(NSURL*)url row:(UITableViewCell*)cell {
UIImage*image;
image = [UIImage imageWithData:[NSData dataWithContentsOfURL:url];
cell.imageView.image = image; // Does not work..
cell.detailTextLabel.text = @"test"; // Works
}
答案 0 :(得分:22)
设置图片后尝试调用[cell setNeedsLayout]
,如果它是您为单元格设置的第一张图片。
答案 1 :(得分:1)
确保单元格样式为UITableViewCellStyleDefault,因为其他单元格类型可能始终返回nil imageView,而不是按需创建一个。
答案 2 :(得分:0)
检查图像是否为零。如果它为nil,则不能正确地从URL中获取Image。
答案 3 :(得分:0)
我也遇到了将图像添加到我的imageView中的问题,该图像被约束在一个tableview单元中,并且没有使用cell.setNeedsLayout()更新。添加图像后在tableview上调用update方法对我有用:
cell.setNeedsLayout()
if #available(iOS 11.0, *) {
tableView.performBatchUpdates(nil, completion: nil)
}
else {
tableView.beginUpdates()
tableView.endUpdates()
}