【问题标题】:How to get customized cell and use it's customized item by indexpath - swift3?如何获取自定义单元格并通过 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'
【问题讨论】:
标签:
ios
swift
uitableview
tableview
【解决方案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)")
}