【发布时间】:2017-07-09 23:46:17
【问题描述】:
我想为 UISwitch 的“on”颜色设置动画,并使其保持可交互性,而不影响它的开/关动画。这是我尝试过的:
-
UIView 的动画持续时间方法不起作用,因为好吧……它 不应该,'onTintColor' 没有被列为动画属性 界面视图。很好。
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”设置动画吗?
正确执行此操作的唯一方法是创建自定义开关吗?
【问题讨论】:
标签: ios animation core-animation uiviewanimation ios-animations