watch上的app是建立在IOS上的,主要是在一个watch extension上的文件中运行,相比较与其他市面上的手表app,watchkit上的app都是基于手机上的app运行,然后在传输到手表上,很多运行也是在ios的background上。下面是一个简单的范例
首先是file -> Target -> WatchKit app
之后在interfaceBuilder里建一个table,上面可以放一个label
这个table我们需要单独建一个rowController,然后在把里面的label做connection,下面是TableRowController的代码
import WatchKit
class TableRowController: NSObject {
@IBOutlet weak var label: WKInterfaceLabel!
}
之后我们就可以在interfaceController里建一个array,根据这个array,来在iwatch上呈现出来, 这里我用了一个loadData的function,里面写了一个for loop,虽然没有像 在ios中有selectIndexRow哪样的function可以直接用,但是这种方式也比较简便
import WatchKit
import Foundation
class InterfaceController: WKInterfaceController {
@IBOutlet weak var table: WKInterfaceTable!
let array = ["1", "2", "3"]
override func awake(withContext context: Any?) {
super.awake(withContext: context)
loadData()
// Configure interface objects here.
}
func loadData(){
table.setNumberOfRows(array.count, withRowType: "vecRow")
for index in 0..<array.count {
let row = table.rowController(at: index) as! TableRowController
row.label.setText(array[index])
}
}
override func willActivate() {
// This method is called when watch view controller is about to be visible to user
super.willActivate()
}
override func didDeactivate() {
// This method is called when watch view controller is no longer visible
super.didDeactivate()
}
}