WatchKit将激活()函数。 Xcode不喜欢self.view.insertSubview

时间:2015-04-19 01:18:25

标签: ios swift watchkit

我没有错误。唯一的问题是我的模拟器中没有任何显示。我猜它是因为我在awakeWithContext中没有任何东西?我确实有self.view.insertSubview(heartSymbol, atIndex: 1)但是有一个Xcode错误。  http://i.imgur.com/wzOIR2v.png" InterfaceController没有名为' 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()

}

1 个答案:

答案 0 :(得分:0)

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