如何在部分中设置UITableViewCell backgroundColor而不重复?

时间:2019-04-27 14:41:32

标签: ios swift uitableview

我有一个UITableView,并且已经像这样设置了它的单元格backgroundColor。

cell.backgroundColor = indexPath.row % 2 == 0 ?
            UIColor.Cell.oddBackgroundColor : UIColor.Cell.evenBackgroundColor

但是,当我设置带有节的tableView时,节中的单元格再次如上所述设置其背景色。

例如:

  • 单元格背景颜色无节
    • 黑色
    • 灰色
    • 黑色
    • ...

  • 单元格背景颜色带有部分
    • 第0部分
      • 黑色
      • 灰色
      • 黑色
    • 第1节
      • 黑色
      • 灰色
      • 黑色

如您所见,第0节中的最后一个单元格与第1节中的第一个单元格是相同的背景色。它的单元格背景颜色必须不同,第1部分的顺序必须不同。

例如:

单元格背景颜色带有部分

  • 第0部分
    • 黑色
    • 灰色
    • 黑色
  • 第1节
    • 灰色
    • 黑色
    • 灰色

我如何喜欢上面的示例?

1 个答案:

答案 0 :(得分:1)

//var row = indexPath.row
//for i in 0..<indexPath.section {
//    row += tableView.numberOfRows(inSection: i)
//}
let row = (0..<indexPath.section).reduce(indexPath.row) { $0 + tableView.numberOfRows(inSection: $1) }
cell.backgroundColor = row % 2 == 0 ? UIColor.gray : UIColor.white

enter image description here