如同上一个问题,我想将任意颜色的色调应用于任意图像(UIImageView
)。然而,我希望色调在 N 秒的时间内逐渐消失,以产生“脉冲”效果。我将每 M 秒触发一次脉冲。
虽然我认为我可以使用一个简单的解决方案NSTimer
要改变色调,我想我可以使用一些核心动画框架来获得更优雅(且高效)的解决方案。不过,我对核心动画不是很熟悉。
使用核心动画可以创建这样的“脉冲”吗?如果是这样,怎么办?
聚会迟到了,但我找到了动画的方法UIImageView
's tintColor
。您只需提供contentsMultiplyColor
as keyPath
for CABasicAnimation
。例子:
// 5 seconds infinite pulse animation from current tintColor to red color
let basicAnimation = CABasicAnimation(keyPath: "contentsMultiplyColor")
basicAnimation.duration = 5.0
basicAnimation.fromValue = imageView.tintColor.cgColor
basicAnimation.toValue = UIColor.red.cgColor
basicAnimation.autoreverses = true
basicAnimation.repeatCount = Float.infinity
imageView.layer.add(basicAnimation, forKey: "TintColorAnimationKey")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)