我想动画一下' on' UISwitch的颜色并保持它可以互动,不会影响它的开/关动画。这就是我的尝试:
UIView用持续时间法制作的动画效果并不好......因为它... 不应该,onTintColor'并未列为可动画的属性 UIView的。细
mySwitch.onTintColor = UIColor.green
UIView.animate(withDuration: 10) {
mySwitch.onTintColor = UIColor.red
}
下一步。 UIView使用view方法的转换提供了一些正确的视觉行为,但是当与交换机交互时,默认的开/关动画会受到影响(请参阅GIF)。
UIView.transition(with: mySwitch, duration: 10, options: [.transitionCrossDissolve, .allowUserInteraction], animations: {
mySwitch.onTintColor = UIColor.red
}) { completed in
}
CATransition提供与no相同的行为。 2(见GIF)。
var transition = CATransition()
transition.type = kCATransitionFade
transition.duration = 10
mySwitch.layer.add(transition, forKey: kCATransition)
mySwitch.onTintColor = UIColor.red
任何人都有任何想法如何为onTintColor' onTintColor'不影响默认的开/关动画?
这样做的唯一方法是创建自定义开关吗?
答案 0 :(得分:3)
默认情况下,动画期间禁用用户交互。尝试使用更长形式的UIView动画,
animate(withDuration:delay:options:animations:completion:)
,并传递.allowUserInteraction