动画 UISwitch 'onTintColor' 属性



我正在尝试为开关的onTintColor属性的颜色变化设置动画。当动画发生时,颜色立即发生变化,没有过渡,颜色部分扩展为矩形,然后返回到"剪裁"的圆角矩形色调颜色区域。

这是一个小视频:https://giphy.com/gifs/2A0JVhZmKwUtqJiqOT/html5

我试过使用UIView.animate(withDurationUIView.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

最新更新