UITableViewCell图像未更新

时间:2010-12-10 16:58:07

标签: objective-c xcode

我可以更新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

}

4 个答案:

答案 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()
}