我正在尝试为开关的onTintColor
属性的颜色变化设置动画。当动画发生时,颜色立即发生变化,没有过渡,颜色部分扩展为矩形,然后返回到"剪裁"的圆角矩形色调颜色区域。
这是一个小视频:https://giphy.com/gifs/2A0JVhZmKwUtqJiqOT/html5
我试过使用UIView.animate(withDuration
和UIView.transition
,但得到了相同的结果。
UIView.transition(with: multiplierSwitch, duration: 0.7, options: [.transitionCrossDissolve], animations: {
self.mySwitch.onTintColor = UIColor.red
}, completion: nil)
感谢您的帮助。谢谢
解决方案编辑:使用CATransition
类,我可以在没有以前看到的"方形扩展"的情况下动画化不同颜色之间的转换。
let transition = CATransition()
transition.type = CATransitionType.fade
transition.duration = 0.7
mySwitch.layer.add(transition, forKey: nil)
mySwitch.onTintColor = .red
使用CATransition
类,我可以在没有以前看到的"方形扩展"的情况下动画化不同颜色之间的转换。
let transition = CATransition()
transition.type = CATransitionType.fade
transition.duration = 0.7
mySwitch.layer.add(transition, forKey: nil)
mySwitch.onTintColor = .red