我想为 UISwitch 的“开”颜色设置动画并保持它的可交互性,而不影响它的开/关动画。这是我尝试过的:
UIView 的动画持续时间方法不起作用,因为好吧......它不应该,'onTintColor' 没有被列为 UIView 的动画属性。美好的。
mySwitch.onTintColor = UIColor.green UIView.animate(withDuration: 10) { mySwitch.onTintColor = UIColor.red }
下一个。UIView 与视图方法的转换提供了一种正确的视觉行为,但是当与开关交互时,默认的开/关动画会受到影响(参见 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”设置动画?
正确执行此操作的唯一方法是创建自定义开关吗?