检查是否设置了带有名称的图像(WatchKit)
Check if image with name is set (WatchKit)
我想检查名称为 "image.png"
的图像是否设置为图像视图 "imgView"
。我知道如何在普通 ViewController.swift
中使用 Swift 执行此操作,但不知道如何在手表套件扩展 (InterfaceController.swift
) 中执行此操作。你们有人知道我该怎么做吗?
查看 WKInterfaceImage 的 header:
@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。一种策略可能是 subclass this 并跟踪设置,然后编写您自己的自定义 getter,但不幸的是,您无法在情节提要中更改为自定义 class,因此您不能使用它自定义 subclass 无论如何。您也无法以编程方式直接读取从情节提要中设置的图像。
但是要回答你的问题,你不能问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
}
我想检查名称为 "image.png"
的图像是否设置为图像视图 "imgView"
。我知道如何在普通 ViewController.swift
中使用 Swift 执行此操作,但不知道如何在手表套件扩展 (InterfaceController.swift
) 中执行此操作。你们有人知道我该怎么做吗?
查看 WKInterfaceImage 的 header:
@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。一种策略可能是 subclass this 并跟踪设置,然后编写您自己的自定义 getter,但不幸的是,您无法在情节提要中更改为自定义 class,因此您不能使用它自定义 subclass 无论如何。您也无法以编程方式直接读取从情节提要中设置的图像。
但是要回答你的问题,你不能问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
}