Ios ui在设置动画时打开/关闭动画';onTintColor';
我想为UISwitch的“开”色设置动画,并保持其可交互性,同时不影响其开/关动画。以下是我尝试过的:Ios ui在设置动画时打开/关闭动画';onTintColor';,ios,animation,core-animation,uiviewanimation,ios-animations,Ios,Animation,Core Animation,Uiviewanimation,Ios Animations,我想为UISwitch的“开”色设置动画,并保持其可交互性,同时不影响其开/关动画。以下是我尝试过的: UIView的“使用持续时间设置动画”方法不起作用,因为 不应将“onTintColor”列为的可设置动画的属性 尤维尤。好的 mySwitch.onTintColor = UIColor.green UIView.animate(withDuration: 10) { mySwitch.onTintColor = UIColor.red } 下一个。UIView的transit
mySwitch.onTintColor = UIColor.green
UIView.animate(withDuration: 10) {
mySwitch.onTintColor = UIColor.red
}
正确执行此操作的唯一方法是创建自定义开关吗?默认情况下,在动画期间禁用用户交互。尝试使用较长形式的UIView动画
设置动画(持续时间:延迟:选项:动画:完成:)
,并传入的选项。默认情况下,动画期间禁用allowUserInteraction
。尝试使用较长形式的UIView动画
设置动画(持续时间:延迟:选项:动画:完成:)
,并传入的选项。allowUserInteraction
感谢您的建议。将该选项传递给transition with view会按照它所说的做,这很好,但也会影响开关的默认开/关动画。请看我的编辑和链接GIF:)谢谢你的建议。将该选项传递给transition with view会按照它所说的做,这很好,但也会影响开关的默认开/关动画。请查看我的编辑和链接GIF:)
UIView.transition(with: mySwitch, duration: 10, options: [.transitionCrossDissolve, .allowUserInteraction], animations: {
mySwitch.onTintColor = UIColor.red
}) { completed in
}
var transition = CATransition()
transition.type = kCATransitionFade
transition.duration = 10
mySwitch.layer.add(transition, forKey: kCATransition)
mySwitch.onTintColor = UIColor.red