TableCell ImageView使用URL设置图像:SDWebImage:仅调整第一行的大小

时间:2015-04-16 21:38:58

标签: ios uitableview uiimageview sdwebimage

在我的方法中,我有以下代码。

它在第一个表行记录中运行良好,但其余单元格不会调整大小。

HOWEVER ,当我开始滚动时,他们会这样做。我似乎无法弄清楚为什么。还有什么我需要做的吗?

[cell.imageView sd_setImageWithURL:url
                  placeholderImage: [UIImage imageNamed:@"default.png"]
                         completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {

                          if (image) {

                              NSLog(@"%@", account);

                              CGSize itemSize = CGSizeMake(32, 32);
                              UIGraphicsBeginImageContext(itemSize);
                              CGRect imageRect = CGRectMake(0.0, 0.0, itemSize.width, itemSize.height);
                              [image drawInRect:imageRect];
                              cell.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
                              UIGraphicsEndImageContext();
                              cell.imageView.layer.cornerRadius = 16;
                              cell.imageView.clipsToBounds = YES;
                          }
    }];

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。 已完成的SDWebImage块不会在UI线程上运行,因此ui更新不会进入屏幕。

在完成块中添加以下内容为我解决了这个问题:

dispatch_async(dispatch_get_main_queue(), ^{
  [cell setNeedsLayout];
});

E.g。有必要将单元重新布局的请求发送到ui线程。