【问题标题】:TableView Cells changing on reload and not displaying correct content | SwiftTableView 单元格在重新加载时发生变化并且不显示正确的内容 |迅速
【发布时间】:2022-01-13 02:34:56
【问题描述】:

我有一个从 JSON 数组加载自定义单元格的表格视图。我注意到在第一次加载时,细胞看起来非常好。在第二次加载(拉动刷新)时,单元格不再遵循 cellForRowAt 中表达的设计逻辑 - 而是随机单元格将开始显示其他单元格的颜色和隐藏的图像。

重新加载时逻辑失败的一个示例是名为“fGlyph”的 UIImage 显示在 item.type ==“locate”的位置,然后刷新后 tableview 将在完全不正确的单元格上显示 UIImage。

【问题讨论】:

    标签: swift tableview


    【解决方案1】:

    在 tableview 中,单元格被重用而不是重新创建。所以你需要在重用之前重置单元格参数。否则旧数据会出现在意想不到的地方。以下是执行此操作的函数

    override func prepareForReuse() {
        self.cellImage.image = UIImage(named: "")
    }
    

    【讨论】:

      【解决方案2】:

      在tableView Cell中使用下面的代码

      override func prepareForReuse() {
          self.cellImage.image = UIImage(named: "")
      }
      

      或在 else 块中使用 cell.cellImage.image = UIImage(named: "")

         //Setting Images
          if item.type == "locate" {
              cell.stopnumLabel.text = ""
              cell.cellImage.image = UIImage(named: "fGlyph")
          } else {
              cell.cellImage.image = UIImage(named: "")
              cell.stopnumLabel.text = "\(item.stoporder)"
          }
      

      【讨论】:

        猜你喜欢
        • 2022-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多