以下代码片段在应用于UITableView时应仅使第一个单元格为橙色,而是使第15个单元格也变为橙色。知道如何让一个单元格变成橙色吗?或者这是一个错误?我正在使用ios8。
class ViewController: UITableViewController {
var links: [Int] = []
override func viewDidLoad() {
for index in 1...100 {
links.append(index)
}
}
@IBOutlet var aTableView: UITableView!
override func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
return links.count
}
override func tableView(tableView: UITableView!, willDisplayCell cell: UITableViewCell!, forRowAtIndexPath indexPath: NSIndexPath!) {
if indexPath.row == 0 {
cell.backgroundColor = UIColor.orangeColor()
}
}
答案 0 :(得分:3)
这不是一个错误,它是一个功能! (但实际上)。
您看,这些单元格重复使用。如果您希望单元格0为橙色,则必须确保其他单元格是常规颜色。
像这样:
if indexPath.row == 0 {
cell.backgroundColor = UIColor.orangeColor()
} else {
cell.backgroundColor = UIColor.whiteColor()
}
答案 1 :(得分:0)
当您将单元格出列时,这意味着
返回不再可见的单元格var cell = self.aTableView?.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as Cell
其中一个被更改为橙色背景,如果您向后滚动到表格的顶部,它可能会生成另一个橙色单元格。设置单元格外观时需要牢记这一点,如果没有特殊值,请务必重置为默认值。