我想在函数内部获取单元格(在tableview函数之外)。尝试这样,但当它改为第1行时,它就崩溃了。
到目前为止,这是我的代码:
func ValueChecker(cell: UITableViewCell){
let subCellInt = Int(CustomUserDefaults.shared.getSubCellRow())!
let cell = self.tableView.cellForRow(at: IndexPath(row: 0, section: 0)) as! BankPaymentDetailsCell
let mainMenuValue = CustomUserDefaults.shared.getSubCell()
if(mainMenuValue=="00" || mainMenuValue=="01" || mainMenuValue=="02" || mainMenuValue=="03" || mainMenuValue=="04" || mainMenuValue=="05" || mainMenuValue=="06"){
selectedRow = -1
cell.ivExpand.transform = CGAffineTransform(rotationAngle: (180.0 * CGFloat.pi) * 180.0)
}else{
cell.ivExpand.transform = CGAffineTransform(rotationAngle: (180.0 * CGFloat.pi) / 180.0)
}
tableView.beginUpdates()
tableView.endUpdates()
}
subCellInt是我在本地保存的indexpath.row。
如果我改为:
let cell = self.tableView.cellForRow(at: IndexPath(row: subCellInt, section: 0)) as! BankPaymentDetailsCell
它仅适用于第0个单元格(第一个单元格),但如果单元格编号为1和2(单元格数为3)则会崩溃。
如何在tableview函数之外获取单元格?
更新: 我使用此代码从tableview外部函数访问tableview单元格:
func ValueChecker(cell: UITableViewCell){
let subCellInt = Int(CustomUserDefaults.shared.getSubCellRow())!
let cell : BankPaymentDetailsCell = tableView.dequeueReusableCell(withIdentifier: "BankPaymentDetailsCell") as! BankPaymentDetailsCell
let mainMenuValue = CustomUserDefaults.shared.getSubCell()
if(mainMenuValue=="00" || mainMenuValue=="01" || mainMenuValue=="02" || mainMenuValue=="03" || mainMenuValue=="04" || mainMenuValue=="05" || mainMenuValue=="06"){
selectedRow = -1
cell.ivExpand.transform = CGAffineTransform(rotationAngle: (180.0 * CGFloat.pi) * 180.0)
}else{
cell.ivExpand.transform = CGAffineTransform(rotationAngle: (180.0 * CGFloat.pi) / 180.0)
}
tableView.beginUpdates()
tableView.endUpdates()
}
到目前为止,它的确有效。它可以从外部tableview函数访问单元格,它不再崩溃。
答案 0 :(得分:0)
只有当表视图足够大以便加载时,才能访问表视图单元格。
答案 1 :(得分:0)
您无法从外部访问tableview的任何随机单元格。
但是有一种方法可以实现这一目标。
你可以用
让visibleCells = yourTableView.visibleCells
通过这种方法,你可以获得一系列可见细胞,你可以做任何你想做的事情