检查重用单元格的图像是不是为空

Posted

技术标签:

【中文标题】检查重用单元格的图像是不是为空【英文标题】:Check if image is empty for reused cells检查重用单元格的图像是否为空 【发布时间】:2013-06-05 20:56:29 【问题描述】:

每个单元格都有一个图像。 我希望能够检查图像是否为空。

我正在使用 tableView 的 reuseIdentifier

我尝试过以下操作

if (!cell.imageView.image) 


if (CGSizeEqualToSize(cell.imageView.image.size, CGSizeZero)) 


但是这些方法都不起作用,因为单元格认为图像存在,因为以前的单元格的图像存在(由于重复使用的单元格)

如何解决这个问题? 如何检查单元格的图像是否为空或不在重复使用的单元格中?

【问题讨论】:

你为什么在乎?如果你想摆脱它,只需 nil 它,或者如果不想,则覆盖(或设置)为你想要的值。 在cellForRowAtIndexPath中,需要先将图片设置为nil,以适应合适的条件(例如在else块中),这样图片就不会被重复使用。跨度> 【参考方案1】:

从技术上讲,如果单元格被重复使用,则图像不会为零(除非您没有设置它)。因此,如果您想重用单元格中的图像,您可以使用 UITableViewCell 中的-prepareForReuse 方法,该方法在重用单元格之前调用,因此在此方法中您可以使图像为零.

【讨论】:

你说的在处理少量图像时是有效的。如果您要处理数千张图像并且每次都将图像设置为零,那么如果您高速滚动表格视图,性能将会非常糟糕...... @Paradise 我的回答与 SO 问题有关,与包含数千张图像的表格视图的性能无关;)。

以上是关于检查重用单元格的图像是不是为空的主要内容,如果未能解决你的问题,请参考以下文章

如何检查Excel中的日期单元格是不是为空?

UITableViewCell 重用和图像重新渲染

通过按钮、标签和单元格重用问题检查 uitableviewcell 中的图像无法正常工作

我的 UITableViewCell 正在重用以前的单元格 UIImage

带有两个自定义单元格的 TableView 导致单元格重用问题(Swift 4)

如果当前单元格在 VBA 中为空,则获取相邻单元格的值