如何为所有类型的单元设置默认单元设置?

How to set default Cell Setup to all type of cells?

我想设置我的表单单元格背景颜色

可以设置一种类型的行(aka RowType)

CheckRow.defaultCellSetup = { cell, row in cell.backgroundColor = .orangeColor() }

但是是否可以为任何类型(全局)设置一次?

您可以使用外观代理从 AppDelegate didFinishLaunchingWithOptions 函数全局自定义类型的属性。

CheckRow.appearance()

执行此操作的方法不止一种,一种方法可能比其他方法更好,这取决于您需要更改多少个单元格或行类型。我知道两种方法 (Swift 4)

第一个,Ahmed Onawale 答案的变体。在 viewDidLoad() 中,为要全局配置的每个行类型设置单元格。

IntRow.defaultCellSetup = { cell, row in
     cell.backgroundColor = .orange
}

这会起作用,尽管如果每种行类型的每个单元格都共享相同的功能可能会变得乏味,如果是这种情况,则必须逐个设置每种行类型的每个单元格,如下所示:

IntRow.defaultCellSetup  = { cell, row in cell.backgroundColor = .orange }
DateRow.defaultCellSetup = { cell, row in cell.backgroundColor = .orange }
TextRow.defaultCellSetup = { cell, row in cell.backgroundColor = .orange }

对于上述场景还有另一种方式。

For 循环遍历 tableView 的每个单元格,如下所示:

    for row in form.allRows {
        let cell = row.baseCell

        cell?.backgroundColor = .orange
    }

确保上面的代码在您设置表单后运行(在 viewDidLoad 的末尾),这样您的单元配置就不会被 Eureka 的配置覆盖