WatchKit будет активировать () функцию. Xcode не любит self.view.insertSubview
У меня ноль ошибок. Единственная проблема - ничего не отображается в моем симуляторе. Я предполагаю, что это потому, что у меня ничего нет в awakeWithContext? у меня был self.view.insertSubview(heartSymbol, atIndex: 1)
но была ошибка Xcode. http://i.imgur.com/wzOIR2v.png "InterfaceController не имеет члена с именем 'view'". Я тоже пробовал self.heartSymbol = currentBeatPattern.heartImage
в функции awakeWithContext(), но все равно не повезло. Также у меня нет функции willActivate() прямо сейчас, так что это нормально на данный момент?
На начальных этапах написания этого приложения я просто хочу циклически просмотреть 5 heartImages в цикле if в функции newBeat(), а затем отобразить их в IBOutlet heartSymbol.
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 ответ
WKInterfaceController не имеет прямого отношения к UIInterfaceController. Он не имеет свойства просмотра. У WatchKit вообще нет UIViews - у него есть WKInterfaceElements, но нет способа динамически вставить их во время выполнения. Все ваши элементы интерфейса должны быть настроены на панели Интерфейсного Разработчика XCode, хотя вы можете скрыть и показать представления во время выполнения и изменить некоторые параметры, такие как строки или изображения.