如何获取自定义单元格并通过 indexpath 使用它的自定义项 - swift3?

Posted

技术标签:

【中文标题】如何获取自定义单元格并通过 indexpath 使用它的自定义项 - swift3?【英文标题】:How to get customized cell and use it's customized item by indexpath - swift3? 【发布时间】:2018-03-22 09:19:10 【问题描述】:

我有一个问题要获取我的自定义单元格。 我使用我的自定义单元格项目会出错。 我怎么了?

let insertIndexPath = IndexPath(row: self.contents.count-1, section: 0)

   var cell = self.tableView.cellForRow(at: insertIndexPath)

        if cell is MyTextTableViewCell 

        cell = MyTextTableViewCell() as MyTextTableViewCell
        cell.checkImageView.isHidden = true //error here
        cell.warningButton.isHidden = true //error here

      else if cell is MyImageTableViewCell 

          cell = MyImageTableViewCell() as MyImageTableViewCell
          cell.checkImageView.isHidden = true //error here
          cell.warningButton.isHidden = true //error here
      

这样的错误:

'UITableViewCell?' 类型的值没有成员'checkImageView'

【问题讨论】:

您要在哪里“自定义”您的单元格? 我使用 xib 自定义我的单元格。 您注册了您的自定义单元格吗? 【参考方案1】:

您正在使用自定义单元类来确保单元实例是否属于该特定类。

实际上您需要使用if-let 块创建自定义单元类的实例。

试试这个看看:

let insertIndexPath = IndexPath(row: self.contents.count-1, section: 0)

if let cell = self.tableView.cellForRow(at: insertIndexPath) as? MyTextTableViewCell 
    cell.checkImageView.isHidden = true 
    cell.warningButton.isHidden = true 

 else if let cell = self.tableView.cellForRow(at: insertIndexPath) as? MyImageTableViewCell 

    cell.checkImageView.isHidden = true 
    cell.warningButton.isHidden = true 
 else if let cell = self.tableView.cellForRow(at: insertIndexPath) 

    print("cell description -- \(cell.description)")

【讨论】:

【参考方案2】:

这样做:

let index = IndexPath(row: self.contents.count-1, section: 0)

if let cell = self.tableView.cellForRow(at: index) as? MyTextTableViewCell 
    cell.checkImageView.isHidden = true
    cell.warningButton.isHidden = true

 else if let cell = self.tableView.cellForRow(at: insertIndexPath) as? MyImageTableViewCell 

cell.checkImageView.isHidden = true
cell.warningButton.isHidden = true
 else if let cell = self.tableView.cellForRow(at: insertIndexPath) 

print("cell is not from required one -- \(cell.description)")

【讨论】:

以上是关于如何获取自定义单元格并通过 indexpath 使用它的自定义项 - swift3?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 的自定义单元格中获取值组件的 indexPath?

将 indexPath 暴露给 configureCell

如何从工作表中获取公式单元格并仅更改一次该公式的变量?

如何在特定 indexpath.row 上显示自定义 tableviewcell

如何从自定义表格视图单元类中获取对表格视图控制器的引用

iOS:`UICollectionview`,如何通过它的`indexPath`获取单元格的`contentoffset`