在加载时配置WKInterfaceTable行控制器

时间:2018-11-28 03:50:56

标签: watchkit

我正在用代码编写大部分watch app UI,并希望在加载时配置行控制器的IB属性,然后再使用rowController(at:)访问它。

有简单的方法吗?所有IB属性在nil处都是init(),并且awakeFromNib()在WatchKit中不适用于NSObject

1 个答案:

答案 0 :(得分:0)

您的IBOutlets必须已经绑定到接口情节提要中使用的自定义表行类。在自定义行类中,您可以通过设置保留信息以显示的对象来更新界面控件。

class TableMainCellType: NSObject {

    @IBOutlet weak var label:WKInterfaceLabel!
    @IBOutlet weak var group:WKInterfaceGroup!

    var item:MyTableItem? {

        didSet{

            label.setText(item?.title)
            group.setBackgroundColor(item?.color)
        }
    }    
}

要更新表单元格,我将在函数中进行迭代以更新InterfaceController中的表视图,如下所示。

// ...
for index in tableItems.indices{

    if let row = self.table.rowController(at: index) as? TableMainCellType {
        let item = tableItems[index]
        row.item = item
    }
}
// ...