WatchKit 的 willActivate() 函数。 Xcode 不喜欢 self.view.insertSubview

WatchKit willActivate() function. Xcode doesn't like self.view.insertSubview

我零错误。唯一的问题是我的模拟器中没有任何显示。我猜这是因为我在 awakeWithContext 中没有任何东西?我确实有 self.view.insertSubview(heartSymbol, atIndex: 1) 但有一个 Xcode 错误。 http://i.imgur.com/wzOIR2v.png "InterfaceController doesn't have a member named 'view'"。我还在 awakeWithContext() 函数中尝试了 self.heartSymbol = currentBeatPattern.heartImage 但仍然没有成功。另外我现在没有 willActivate() 函数,所以现在可以吗?

在编写此应用程序的开始阶段,我只是想在 newBeat() 函数的 if 循环中循环遍历 5 个 heartImages,然后将它们显示在 heartSymbol IBOutlet 中。

import WatchKit
import Foundation


struct BeatPattern {
var heartImage = WKInterfaceImage()
var description = "Normal"
var bpm = 80

var duration: Double {
    return 60.0 / Double(bpm)
}
}


class InterfaceController: WKInterfaceController {

@IBOutlet weak var heartSymbol: WKInterfaceImage!

var currentBeatPattern = BeatPattern()
var currentBeatPatternIndex = 0

var beatPatternsArray = [
    BeatPattern(heartImage: redHeartFast, description: "Fast", bpm: 180),
    BeatPattern(heartImage: yellowHeartElevated, description: "Elevated", bpm: 140),
    BeatPattern(heartImage: greenHeartNormal, description: "Normal", bpm: 80)]




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

    self.view.insertSubview(heartSymbol, atIndex: 1)   // Error

}

override func willActivate() {
    super.willActivate()

}

override func didDeactivate() {
    // This method is called when watch view controller is no longer visible
    super.didDeactivate()

    newBeat()

    NSTimer.scheduledTimerWithTimeInterval(8,
        target: self,
        selector: Selector("newBeat"),
        userInfo: nil,
        repeats: true)

    //beat()

}

WKInterfaceController 与 UIInterfaceController 没有直接关系。它没有视图 属性。 WatchKit 根本没有 UIViews——它有 WKInterfaceElements,但没有办法在运行时动态插入它们。您的所有界面元素都必须在 Xcode 的 Interface Builder 窗格中设置,尽管您可以在运行时隐藏和显示视图并更改一些设置,例如字符串或图像。