TableCell ImageView 使用 URL 设置图像:SDWebImage:仅调整第一行的大小
Posted
技术标签:
【中文标题】TableCell ImageView 使用 URL 设置图像:SDWebImage:仅调整第一行的大小【英文标题】:TableCell ImageView Set Image With URL: SDWebImage: Only resizing first row 【发布时间】:2015-04-16 21:38:58 【问题描述】:在我的方法中,我有以下代码。
它在第一个表格行记录上效果很好,但是剩余的单元格不会调整大小。
但是,当我开始滚动时,它们会滚动。我似乎无法弄清楚为什么。我还需要做些什么吗?
[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】:我遇到了同样的问题。 已完成的 SDWebImage 块不会在 UI 线程上运行,因此 ui 更新不会显示在屏幕上。
在完成块中添加以下内容为我解决了这个问题:
dispatch_async(dispatch_get_main_queue(), ^
[cell setNeedsLayout];
);
例如有必要向 ui 线程发送一个重新布局单元的请求。
【讨论】:
以上是关于TableCell ImageView 使用 URL 设置图像:SDWebImage:仅调整第一行的大小的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 if 语句将变量类型设置为特定类型的自定义 tableCell?
如何通过单击 TableCell 中的按钮将我的 TableCell 中的标签值传递给 TableViewController? [关闭]