如何获取自定义单元格并通过 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?的主要内容,如果未能解决你的问题,请参考以下文章