在我的方法中,我有以下代码。
它在第一个表行记录中运行良好,但其余单元格不会调整大小。
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;
}
}];
答案 0 :(得分:0)
我遇到了同样的问题。 已完成的SDWebImage块不会在UI线程上运行,因此ui更新不会进入屏幕。
在完成块中添加以下内容为我解决了这个问题:
dispatch_async(dispatch_get_main_queue(), ^{
[cell setNeedsLayout];
});
E.g。有必要将单元重新布局的请求发送到ui线程。