160フレームのWKInterfaceImageアニメーションがあります。アニメーションは素晴らしいです。今私は色合いを追加したい。 This SO questionには、インスペクタで[テンプレートイメージとしてレンダリング]オプションを使用してウォッチキットティントメソッドが記述されていますが、単一の静的イメージでのみ機能するようです。最後のフレームだけが色づけされており、最後のフレームには、インスペクタの色合いの色が私のコードの色合いではないことが示されています。私は最初のフレームだけをレンダリングし、すべてのフレームを無駄にレンダリングしようとしました。アニメーションWKInterfaceImageのテンプレートイメージとしてレンダリング
startAnimatingWithImagesInRangeメソッド内ですべてをループしたり、範囲を設定したり、setTintメソッドを組み込んだりする必要がありますか?
rotateButtonImage.setImageNamed("frame")
rotateButtonImage.startAnimatingWithImagesInRange(NSRange(location: 0, length: 159), duration: 1, repeatCount: 1)
rotateButtonImage.setTintColor(UIColor.redColor())
編集:だから私がやった拡張機能を作成することです。それはこのように見えます。 awakeWithContext
の私のカスタムVCで次に
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
}
}
私は呼ば:
rotateButtonImage.image = rotateButtonImage.image.imageWithColor(UIColor.redColor())
しかし、物事が自動完了しないいくつかの理由。私のWKInterfaceImageはrotateButtonImage
と呼ばれ、FoundationとWatchKitなどをインポートしました。
拡張機能の戻り値の型はWKInterfaceImage
でなければなりませんか?私はそれらを変更しようとしましたが、多くのエラーがありました。
は、だから、私は
ですから、インスペクタのメソッドを使用する必要が笑WatchKitでは動作しません、この拡張子を見つけたと思います。しかし、まだ色合いは私のアニメーションで動作していません。これはバグかもしれないと思いますか?単一画像は、コードが有効であっても色合いを使用できますが、複数のフレームを使用することはできません。
をうん私はすでに私のポストであることを説明しました。ありがとうございました。 – tymac