Я хочу проверить, если изображение с именем "image.png"
установлено на изображение "imgView"
. Я знаю, как я могу это сделать с Swift в обычном ViewController.swift
, но не знаю, как это сделать в расширении набора часов (InterfaceController.swift
). Кто-то из вас, ребята, знает, как я могу это сделать?Проверьте, установлено ли изображение с именем (WatchKit)
1
A
ответ
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-интерфейс имеет только сеттеры и нет добытчиками. Одна из стратегий может заключаться в подклассе этого и отслеживании настройки и написании собственных пользовательских геттеров, но, к сожалению, вы не можете изменить свой собственный класс в раскадровке, так что вы не можете использовать этот пользовательский подкласс в любом случае. Вы также не сможете программно читать изображения, которые были установлены непосредственно из раскадровки.
Но чтобы ответить на ваш вопрос, вы не можете спросить 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
}