我的tableview出现故障或在tableview单元格中丢失自定义图像时遇到了很多问题。我一直在做很多研究,并发现了一些有用的东西,但似乎没有解决我的问题。这似乎是重用单元的问题。我还有一个if语句来根据你按下的按钮更改自定义单元格上的图像背景。任何帮助都会非常棒。
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! expenseTableViewCell
let expense = expenses[indexPath.row]
cell.expenseName.text = expenses[indexPath.row].ename
cell.expenseCost.text = "$" + expenses[indexPath.row].ecost!
cell.expenseDue.text = expenses[indexPath.row].edue
//CHANGE BACKGROUND VIEW COLOR
if expense.picture == "1"{
cell.picture.backgroundColor = UIColor(red: 255/255, green: 116/255, blue: 115/255, alpha:1)
}
if expense.picture == "2"{
cell.picture.backgroundColor = UIColor(red: 30/255, green: 192/255, blue: 255/255, alpha:1)
}
return cell
}
答案 0 :(得分:0)
请改为尝试:
if expense.picture == "1"{
cell.picture.backgroundColor = UIColor(red: 255/255, green: 116/255, blue: 115/255, alpha:1)
} else if expense.picture == "2"{
cell.picture.backgroundColor = UIColor(red: 30/255, green: 192/255, blue: 255/255, alpha:1)
}
因为您正在重复使用单元格,所以不能像编写它们那样使用if语句。否则你必须使用else,否则留在内存中的单元格就会混乱。