1

我想检查是否将带有名称"image.png"的图像设置为 image view "imgView"。我知道如何在正常情况下使用 Swift 执行此操作,ViewController.swift但不知道如何在手表套件扩展 ( InterfaceController.swift) 中执行此操作。你们中有人知道我该怎么做吗?

4

1 回答 1

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
}
于 2015-06-09T21:48:39.773 回答