动画UISwitch'onTintColor'属性

时间:2018-11-29 23:03:35

标签: ios swift uiswitch

我正在尝试为开关的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

1 个答案:

答案 0 :(得分:0)

使用CATransition类,我可以为不同颜色之间的过渡设置动画,而无需像以前那样看到“正方形扩展名”。

let transition = CATransition()
transition.type = CATransitionType.fade
transition.duration = 0.7
mySwitch.layer.add(transition, forKey: nil)
mySwitch.onTintColor = .red