Проверьте, установлено ли изображение с именем (WatchKit)

Я хотел бы проверить, если изображение с именем "image.png" настроен на просмотр изображения "imgView", Я знаю, как я могу сделать это со Swift в обычном ViewController.swift но не знаю, как я могу сделать это в расширении набора часов (InterfaceController.swift). Кто-нибудь из вас, ребята, знает, как я могу это сделать?

1 ответ

Решение

Глядя на заголовок для WKInterfaceImage:

@available(watchOS 2.0, *)
class WKInterfaceImage : WKInterfaceObject, WKImageAnimatable {

    func setImage(image: UIImage?)
    func setImageData(imageData: NSData?)
    func setImageNamed(imageName: String?)

    func setTintColor(tintColor: UIColor?)
}

В API есть только сеттеры и нет геттеров. Одной из стратегий может быть создание этого подкласса, отслеживание настроек и создание собственных пользовательских методов получения, но, к сожалению, вы не можете перейти к пользовательскому классу в раскадровке, поэтому вы все равно не можете использовать этот собственный подкласс. Вы также не сможете программно читать изображения, которые были установлены непосредственно из раскадровки.

Но чтобы ответить на ваш вопрос, вы не можете спросить WKInterfaceImage, какое у него изображение. Единственный способ - отслеживать, какие изображения вы устанавливаете вручную, например так:

@IBOutlet var myImage: WKInterfaceImage!

var lastImageUsed: String? = "image.png" // Pre-populate with the image used for myImage in the storyboard

func setImageWrapper(newImage: String) {
    lastImageUsed = newImage
    myImage.setImageNamed(newImage)
}

func getImageWrapper() -> String? {
    return lastImageUsed
}
Другие вопросы по тегам