在WatchKit中以编程方式更改行的颜色

hor*_*rst 2 swift xcode6 watchkit wkinterfacetable

如果已经选择了WKInterfaceTable,我想更改一行的颜色.我已经完成了这些步骤,但不知道如何进一步:

override func table(table: WKInterfaceTable, didSelectRowAtIndex rowIndex: Int) {

    let row = tableView.rowControllerAtIndex(rowIndex) as! TableRowObject

}
Run Code Online (Sandbox Code Playgroud)

我希望你们中的某些人可以帮助我做到这一点.

Dha*_*wal 5

您可以根据行选择更改颜色,

在rowController中创建WKInterfaceGroup的IBOutlet,并使用默认组将其设置为Storyboard,默认组是将Table拖动到storyboard时创建的(无需添加新的WKInterfaceGroup).

@property (weak, nonatomic) IBOutlet WKInterfaceGroup *rowGroup;
Run Code Online (Sandbox Code Playgroud)

创建BOOL属性以跟踪rowController中的选择状态.

@property (nonatomic, readwrite) BOOL isSelected;
Run Code Online (Sandbox Code Playgroud)

将此添加到didSelectRow,

- (void)table:(WKInterfaceTable *)table didSelectRowAtIndex:(NSInteger)rowIndex {

    TableRowObject *row = [self.interfaceTable rowControllerAtIndex:rowIndex];

    if (row.isSelected) {
        row.isSelected = NO;
        [row.rowGroup setBackgroundColor:[UIColor clearColor]];
    }
    else {
        row.isSelected = YES;
        [row.rowGroup setBackgroundColor:[UIColor blueColor]];
    }
}
Run Code Online (Sandbox Code Playgroud)