我试图在Storyboards中创建自定义TableView Cell。加载ViewController时显示正确的数据。但是,当我开始来回滚动时,数据显示在随机单元格中,而不是在正确的位置。我还试图以编程方式将Right Detail单元格的文本加粗:
if dayOfWeek!-1 == indexPath.row {
cell.textLabel?.font = UIFont.boldSystemFont(ofSize: (cell.textLabel?.font.pointSize)!)
cell.detailTextLabel?.font = UIFont.boldSystemFont(ofSize: (cell.detailTextLabel?.font.pointSize)!)
}
然而,类似的事情发生了:粗体看起来正确,文本在随机单元格中加粗。知道如何解决这个问题吗?谢谢!
答案 0 :(得分:7)
class CustomTableViewCell: UITableViewCell {
override func prepareForReuse() {
// your cleanup code
}
}
在索引路径的单元格中
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell: CustomTableViewCell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", for: indexPath) as! CustomTableViewCell
if dayOfWeek!-1 == indexPath.row {
cell.textLabel?.font = UIFont.boldSystemFont(ofSize: (cell.textLabel?.font.pointSize)!)
cell.detailTextLabel?.font = UIFont.boldSystemFont(ofSize: (cell.detailTextLabel?.font.pointSize)!)
}
return cell
}
答案 1 :(得分:0)
调用时必须重新加载tableview。 随机显示的数据是由各个细胞相互承担的属性所致。
在单个视图上使用多个tableview时,您遇到了这类问题。 因此,具有错误地考虑了属性的元素的单元格可以通过刷新表格视图来解决,这是" RELOAD"。
如果数据来自API,那么这将是一个优势,将响应数据放入主数组并重新加载表视图。