自定义TableViewCell乱序?

时间:2018-03-08 20:16:09

标签: swift tableview cell

我的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
}

1 个答案:

答案 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,否则留在内存中的单元格就会混乱。