gpt4 book ai didi

ios - 显示不正确值的自定义 UITableViewCell

转载 作者:搜寻专家 更新时间:2023-10-31 22:26:34 25 4
gpt4 key购买 nike

我有一个 UITableViewController 显示带有一些标签的自定义单元格和一个自定义 UIView。在 tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) 方法中,当单元格被重用时,颜色似乎没有被重置(它们看起来完全随机)。我该如何解决这个问题?

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let historyEntry = allHistoryEntries[indexPath.section].histories![indexPath.row]

let cell = tableView.dequeueReusableCell(withIdentifier: cellId, for: indexPath) as! HistoryCell

cell.dateLabel.text = "\(getDayFrom(date: (historyEntry.beginDate)!))"

let highestBac = getHighestBac(history: historyEntry)
cell.highestBacLabel.text = "Høyeste promille " + String(describing: Double(highestBac).roundTo(places: 2))

cell.costLabel.text = String(describing: getNorwegianDayFrom(date: (historyEntry.beginDate!))) + " brukte du " + String(describing: calculateTotalCostBy(history: historyEntry)) + ",-"

let goal = Double(AppDelegate.getUserData()?.goalPromille ?? 0.0)
let red = UIColor(red: 193/255.0, green: 26/255.0, blue: 26/255.0, alpha: 1.0)
let green = UIColor(red:26/255.0, green: 193/255.0, blue: 73/255.0, alpha: 1.0)

let color = highestBac > goal ? red : green

cell.highestBacLabel.textColor = color
cell.circleView.ringColor = color

return cell
}

这是一张显示颜色的图片。预期的行为是应该使用红色或绿色,而不是组合。

更新:只是 ringColor 显示了错误的颜色。

enter image description here

最佳答案

如果没有默认颜色,请使用 prepareForReuse() 将颜色重置为清除。此函数必须在您的 HistoryCell 类中

override func prepareForReuse() {
super.prepareForReuse()
//Reset label to clear color
self.highestBacLabel.textColor = UIColor.clear
}

关于ios - 显示不正确值的自定义 UITableViewCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45765688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com