Swift Tableview获取特定的单元格不起作用

时间:2019-04-20 02:56:21

标签: ios swift uitableview

我正在尝试为表格视图清除特定的单元格。我知道可以通过在此处使用以下代码来实现:

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行”

1 个答案:

答案 0 :(得分:2)

似乎您自己几乎已经发现了问题!

与表格视图一样,iOS重用它们的单元格以保留内存并为用户提供无缝的平滑滚动体验。

当单元从屏幕上消失时,iOS会重新使用它们。即:当您向下滚动时,初始单元格将开始被重用。在较大的屏幕上,这可能需要一段时间,因为它可能一次显示20个单元,而在较小的屏幕上则显示10个屏幕。

如果要永久删除此单元格,则应从模型中删除相应的数据对象,该对象将备份表视图(数据源)并重新加载表视图。

如果您不想永久删除此单元格,则只有在实际需要绘制表格时才能重置它。这可以在数据源方法中完成

class Car {
    constructor(myVin) {
        this.vin = myVin;
    }
}