我正在尝试为表格视图清除特定的单元格。我知道可以通过在此处使用以下代码来实现:
let index = IndexPath(row: 1, section: 0)
if let cell = self.tableView.cellForRow(at: index) as? SomeTableViewCell {
// do sth
}else {
print("Row 1 not found")
}
但是问题是,当我在较大的屏幕电话(例如Iphone7、8,X)上使用此方法时,它可以正常工作,但是当我在iphone5、6或较小的屏幕上进行测试时,第1行不可见,将显示“未找到第1行”
答案 0 :(得分:2)
似乎您自己几乎已经发现了问题!
与表格视图一样,iOS重用它们的单元格以保留内存并为用户提供无缝的平滑滚动体验。
当单元从屏幕上消失时,iOS会重新使用它们。即:当您向下滚动时,初始单元格将开始被重用。在较大的屏幕上,这可能需要一段时间,因为它可能一次显示20个单元,而在较小的屏幕上则显示10个屏幕。
如果要永久删除此单元格,则应从模型中删除相应的数据对象,该对象将备份表视图(数据源)并重新加载表视图。
如果您不想永久删除此单元格,则只有在实际需要绘制表格时才能重置它。这可以在数据源方法中完成
class Car {
constructor(myVin) {
this.vin = myVin;
}
}