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 转为 mapkit

代码分析:TableCell如何攻克CA2000

如何通过单击 TableCell 中的按钮将我的 TableCell 中的标签值传递给 TableViewController? [关闭]

编辑 TableView 时自定义 TableCell 中没有缩进

来自xib中自定义TableCell的PresentViewController