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, хотя вы можете скрыть и показать представления во время выполнения и изменить некоторые параметры, такие как строки или изображения.

Другие вопросы по тегам