Ich habe eine WKInterfaceImage Animation mit 160 Frames. Animation ist großartig. Jetzt möchte ich einen Farbton hinzufügen. This SO question erwähnt die WatchKit-Farbtonmethode mit der Option "Als Vorlage ausgeben" im Bereich "Informationen", scheint aber nur für ein einzelnes statisches Bild zu funktionieren. Es tönte nur das letzte Bild und es tönte das letzte Bild in der Farbe meiner Tönung im Inspector, nicht in meinem Tönungscode. Ich habe versucht, nur den ersten Frame zu rendern und alle Frames ohne Erfolg zu rendern.Render als Vorlage Bild auf einer animierten WKInterfaceImage
Muss ich alle durchlaufen oder einen Bereich festlegen oder die setTint-Methode in die startAnimatingWithImagesInRange-Methode integrieren?
rotateButtonImage.setImageNamed("frame")
rotateButtonImage.startAnimatingWithImagesInRange(NSRange(location: 0, length: 159), duration: 1, repeatCount: 1)
rotateButtonImage.setTintColor(UIColor.redColor())
EDIT: Also, was ich tat, ist eine Erweiterung erstellen. Es sieht aus wie das.
WKImage + Tint.swift
extension UIImage {
func imageWithTintColor(colorTint : UIColor) -> UIImage {
UIGraphicsBeginImageContextWithOptions(self.size, false, self.scale)
colorTint.setFill()
let context : CGContextRef = UIGraphicsGetCurrentContext()! as CGContextRef
CGContextTranslateCTM(context, 0, self.size.height)
CGContextScaleCTM(context, 1.0, -1.0)
CGContextSetBlendMode(context, CGBlendMode.Normal)
let rect : CGRect = CGRectMake(0, 0, self.size.width, self.size.height)
CGContextClipToMask(context, rect, self.CGImage)
CGContextFillRect(context, rect)
let newImage : UIImage = UIGraphicsGetImageFromCurrentImageContext() as UIImage
UIGraphicsEndImageContext()
return newImage
}
}
Dann in meiner benutzerdefinierten VC in awakeWithContext
Ich rief:
rotateButtonImage.image = rotateButtonImage.image.imageWithColor(UIColor.redColor())
aber aus irgendeinem Grund sind die Dinge nicht Auto-Vervollständigung. Mein WKInterfaceImage heißt rotateButtonImage
und ich habe Foundation und WatchKit usw. importiert.
Sollte meine Erweiterung oder Funktion Rückgabetyp vom Typ WKInterfaceImage
sein? Ich habe versucht, diese zu ändern, habe aber viele Fehler bekommen.
Also ich denke, ich diese Erweiterung herausgefunden wird in WatchKit nicht funktionieren lol
So müssen Sie den Inspector-Methode verwenden. Aber es ist immer noch der Farbton arbeitet nicht an meiner Animation. Ich denke, das könnte ein Fehler sein? Ein einzelnes Bild kann einen Farbton verwenden, aber möglicherweise nicht mehrere Frames, obwohl der Code gültig ist.
Ja ich bereits erklärt, dass in meinem Beitrag. Vielen Dank. – tymac