检查是否设置了带有名称的图像(WatchKit)

时间:2015-06-09 14:46:16

标签: swift watchkit wkinterfaceimage

我想检查名为"image.png"的图片是否设置为图片视图"imgView"。我知道如何使用Swift在正常的ViewController.swift中做到这一点,但我不知道如何在监视工具包扩展(InterfaceController.swift)中执行此操作。你们有人知道我怎么做吗?

1 个答案:

答案 0 :(得分:0)

查看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只有setter而且没有getter。一种策略可能是对此进行子类化并跟踪设置,并编写自己的自定义getter,但遗憾的是,您无法在故事板中更改为自定义类,因此无论如何都无法使用该自定义子类。您还无法以编程方式直接读取故事板中设置的图像。

但是要回答你的问题,你不能向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
}