Я пытаюсь анимировать backgroundColor CALayer с помощью CAKeyFrameAnimation. Когда я делаю это с классическими цветами, он работает; Но с цветом, полученным от patternImage UIColor(patternImage:"imageName").CGColor
, он вообще не работает.CAKeyFrameAnimation с цветом от patternImage
@IBAction func animFirstView(sender: AnyObject)
{
addAnim(view1, colors: [UIColor.blackColor().CGColor, UIColor.redColor().CGColor]) // THAT WORKS
}
@IBAction func animSecondView(sender: AnyObject)
{
var firstColor = UIColor(patternImage: UIImage(named:"stars1")!).CGColor;
addAnim(view2,
colors: [firstColor]); // THAT doesn't works at all :(
}
func addAnim(view:UIView, colors:[CGColor])
{
let anim = CAKeyframeAnimation(keyPath:"backgroundColor")
anim.values = colors;
anim.keyTimes = [0.0, 0.25, 0.5, 0.75, 1];
anim.calculationMode = kCAAnimationDiscrete
anim.duration = 0.3;
anim.repeatCount = Float.infinity;
view.layer.addAnimation(anim, forKey: "backgroundColor");
}
У кого-то есть идея?
Разве это невозможно сделать, или я делаю что-то неправильно?
тест случай «ошибка» https://github.com/lastMove/patternBugDemo
Благодарим вас за отправку примера в github! Это дало мне кое-что для работы. – matt