我有零错误。唯一的问题是我的模拟器中没有任何显示。我猜这是因为我在 awakeWithContext 中没有任何东西?我确实有 self.view.insertSubview(heartSymbol, atIndex: 1)
但有一个 Xcode 错误。 ../../../wzOIR2v.png “InterfaceController 没有名为‘view’的成员”。我还在 awakeWithContext() 函数中尝试了 self.heartSymbol = currentBeatPattern.heartImage
但仍然没有成功。另外我现在没有 willActivate() 函数,所以现在可以吗?
在编写此应用程序的开始阶段,我只想在 newBeat() 函数的 if 循环中循环遍历 5 个 heartImage,然后将它们显示在 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 不直接相关。它没有 View 属性。 WatchKit 根本没有 UIViews - 它有 WKInterfaceElements,但无法在运行时动态插入它们。尽管您可以在运行时隐藏和显示 View 并更改一些设置(例如字符串或图像),但所有界面元素都必须在 Xcode 的 Interface Builder Pane 中设置。
Tôi là một lập trình viên xuất sắc, rất giỏi!