2015-03-10 14 views
9

Ich möchte meine UIImage auf WKInterfaceImage festlegen, aber der Simulator zeigt nur schwarzen Bildschirm. Es funktioniert OK mit setImageNamed: NSString* Methode, aber nicht mit setImage: UIImage*. Meine Datei1.png wird dem Ordner "(App Name) WatchKit App" hinzugefügt.WatchKit: WKInterfaceImage programmgesteuert festlegen

- (void)willActivate { 
    [self.imageView1 setImage: [UIImage imageNamed: @"file1"]]; // doesn't work 
    [self.imageView1 setImageNamed: @"file1"]; // works OK 
    [super willActivate]; 
} 

Danke!

Antwort

1

Wenn Sie [UIImage imageNamed:imageName] von Ihrer Nebenstelle anrufen, wird immer nil für ein zwischengespeichertes Bild zurückgegeben. Das Bild wird auf der Uhr zwischengespeichert - nicht in Ihrer Erweiterung.

Sobald ein Bild zwischengespeichert ist, können Sie ein WKInterfaceImage mit der Methode [WKInterfaceImage setImageNamed:] festlegen.

12

Alles funktioniert wie erwartet.

file1 ist in Ihrem WatchKit App-Ordner, was bedeutet, dass es auf der Uhr ist.

Aufruf [UIImage imageNamed:] lädt aus dem Hauptbündel, das file1 nicht enthält, so erhalten Sie nil.

Die Art, wie Sie das tun, ist richtig. setImageNamed: sucht zuerst nach Bildern auf der Uhr, dann im Cache.

+0

Ich wünschte, Xcode würde Ihnen eine Warnung geben, wenn Sie dies in einer Watchkit-Erweiterung versuchen. – psobko

Verwandte Themen