检查重用单元格的图像是不是为空
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 问题有关,与包含数千张图像的表格视图的性能无关;)。以上是关于检查重用单元格的图像是不是为空的主要内容,如果未能解决你的问题,请参考以下文章
通过按钮、标签和单元格重用问题检查 uitableviewcell 中的图像无法正常工作
我的 UITableViewCell 正在重用以前的单元格 UIImage