我在Apple Watch上向WKInterfaceTable
添加行时遇到问题。奇怪的是,无论我做什么,前4行都显示为空。我尝试手动和循环添加行 - 没关系。我相信我的代码很好,因为第5行和更多行看起来很好。这里发生了什么:
进一步滚动:
我的代码:
import Foundation
import WatchKit
class TableInterfaceController: WKInterfaceController{
@IBOutlet weak var agentTable: WKInterfaceTable!
let agents = ["The Dude","Walter","Donnie","Maude","Knox","Karl","Nihilist 2"]
override init(){
super.init()
loadTableData()
}
private func loadTableData(){
agentTable.setNumberOfRows(agents.count, withRowType: "AgentTableRowController")
println("Count: \(agents.count)")
for(index,agentName) in enumerate(agents){
let row = agentTable.rowControllerAtIndex(index) as AgentTableRowController
println(agentName, index)
row.agentLabel.setText(agentName)
}
}
}
任何帮助表示赞赏。这可能是微不足道的。我在Yosemite 10.10.2
上运行Xcode 6.2(6C131e)答案 0 :(得分:2)
在awakeWithContext
初始化我的表时,我遇到了完全相同的问题。按照dan的建议将表初始化移动到willActivate
,问题就解决了。
我对WKInterfaceController
和WKInterfaceTable
的文档进行了筛选,他们建议您 能够在init
或{{1}中执行初始化所以我相信这是WatchKit框架中的一个错误。
答案 1 :(得分:0)
也许用索引的for-loop尝试一下?
for var i=0; i<agents.count; i++ {
let row = agentTable.rowControllerAtIndex(i) as AgentTableRowController
println(agents[i], i)
row.agentLabel.setText(agents[i])
}
希望对你有用..