我无法理解我做错了什么, 我有一个名为TblView_Categorie的UITableView,我想要做的是获取所需索引路径的单元格:
这是我的代码:
let myRecordindex = IndexPath(row: myRecordcheck, section: 0)
let cell = tblViewcategorie.cellForRow(at: myRecordindex) as! categorieTVC
pb是否显示MyRecordIndex屏幕(无需滚动)一切正常
如果屏幕上没有显示MyRecordIndex(需要滚动)我有这个错误
“线程1:致命错误:在打开可选值时意外发现nil”
如果我手动滚动到所需的索引,我输入所需的MyRecordIndex一切正常
我尝试使用下面的代码自动滚动:滚动工作但仍然是同样的错误
self.tblViewCategorie.scrollToRow(at: myRecordindex, at: UITableViewScrollPosition.middle, animated: true)
任何人都可以帮助我,为什么我有这个错误?
我想做的就是让单元格在所需的索引路径上改变颜色,字体,..
// 更新cellForRowAt实施
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") as! categorieTVC
if let categorieName = self.fetchedResultsController.object(at: indexPath).categorieName{
cell.setListeDesCategories(categorieName: categorieName)
}
return cell
}
//更新代码和崩溃屏幕截图
答案 0 :(得分:1)
您无法明确取消
let cell = TblView_Categorie.cellForRow(at: MyRecordIndex) as! CategorieTVC
作为单元格我不可见所以它将是nil - >碰撞
试
let cell = TblView_Categorie.cellForRow(at: MyRecordIndex) as? CategorieTVC
if(cell != nil)
{
}
编辑:滚动到单元格并在cellForRow
之后调度let myRecordindex = IndexPath(row: myRecordcheck, section: 0)
self.tblViewCategorie.scrollToRow(at: myRecordindex, at: UITableViewScrollPosition.middle, animated: true)
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0 )) {
let cell = TblView_Categorie.cellForRow(at: MyRecordIndex) as? CategorieTVC
if(cell != nil)
{
}
}