更改时,Cell.imageView.image不会自动加载

时间:2014-05-01 13:15:48

标签: ios objective-c uitableview

所以我有代码在前台更改tableView的单元格图像(在后台下载图像后):

dispatch_queue_t background = dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
        dispatch_async(background, ^{

            UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://whatever.jpg"]]];

            dispatch_queue_t foreground = dispatch_get_main_queue();

            dispatch_async(foreground, ^{
               cell.imageView.image = image;
            });
        });

现在我知道代码工作正常,因为当我委托远离tableview并返回时它会加载。如果我在设置imageView的同时将cell.textLabel.text设置为某些内容,它也会工作(自动加载),但由于某种原因,只是尝试使用块更改单元格图像不起作用。 / p>

如果它们没有阻挡它也会起作用,但我不想因为延迟而这样做。

所有帮助表示赞赏:)

2 个答案:

答案 0 :(得分:2)

尝试添加[cell.imageView setNeedsLayout:YES],除此之外,我无法看到您的代码无法正常工作,我在其中一个应用中使用的代码完全相同,而且工作正常。

答案 1 :(得分:1)

块完成时使用[tableview reloadData];