WatchOS2 - 如何在选择时使所有行组或每个行组成不同的颜色?

时间:2016-01-17 05:15:13

标签: swift watchkit watch-os-2

我尝试将其设置为一行(一行中的一组)在单击时变为紫色,当单击一个新行时,它变为紫色,前一个恢复为默认的操作系统颜色。 / p>

当我选择一行时,它会正确变为紫色,但当我点击另一行时,前一行不会恢复到正常的黑色行。

我还想更进一步,使每行5行变成不同的颜色。当选择新行时,每个行组都会恢复为默认的watchOS黑色。

这很有趣,因为默认颜色似乎不是深灰色或黑色。由于主视图bg是黑色,因此黑色基本上与清晰相同。深灰色比默认值轻。

class TableInterfaceController: WKInterfaceController {

@IBOutlet var tableOutlet: WKInterfaceTable!

override func awakeWithContext(context: AnyObject?) {
    super.awakeWithContext(context)

    let arrayOfObjects = ["ORANGE","PURPLE","BLUE","GRAY","YELLOW"]

    tableOutlet.setNumberOfRows(arrayOfObjects.count, withRowType: "row")

    for (var i = 0; i < arrayOfObjects.count; i++) {

        let row = tableOutlet.rowControllerAtIndex(i) as? RowController
        let labelValue = arrayOfObjects[i]

        row?.labelOutlet.setText(labelValue)   
    } 
}

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

    let row = tableOutlet.rowControllerAtIndex(rowIndex) as? RowController

    row?.groupOutlet.setBackgroundColor(UIColor.purpleColor())

    if (row!.isSelected) {
        row!.isSelected = false
        row?.groupOutlet.setBackgroundColor(UIColor.blackColor())

    }
    else {
        row?.isSelected = true
        row?.groupOutlet.setBackgroundColor(UIColor.purpleColor())
    }
}


class RowController: NSObject {
@IBOutlet var labelOutlet: WKInterfaceLabel!
@IBOutlet var groupOutlet: WKInterfaceGroup!
var isSelected : Bool = false

}

enter image description here

我想要这样

enter image description here

1 个答案:

答案 0 :(得分:0)

您需要实施以下更改。

var totalLength = 0;
var prevPos;
var polyline = document.getElementById("polyline");
for (var i = 0 ; i < polyline.points.numberOfItems;i++) {
    var pos = polyline.points.getItem(i);
    if (i > 0) {
        totalLength += Math.sqrt(Math.pow((pos.x - prevPos.x), 2) + Math.pow((pos.y - prevPos.y), 2));
    }
    prevPos = pos;
}
alert(totalLength);