我收到了一个设计,其中每个
UISwitch
都有一个thumbTintColor
用于其开启状态,另一个用于关闭状态。我想要实现这个设计,但是到目前为止,我还不知道为什么动画会导致拇指从右向左或从左向右移动的过程完全混乱。
基本上,当开关被点击时,它的拇指不是从一端滑动到另一端,而是变形并立即出现在另一端。这是我能描述这种失真的最接近方式,而不提供实际异常视频。
我的猜测是,这可能与UIKit
和某些UIControls
的animatable
属性的内部工作方式有关。到目前为止,我得出的唯一结论是放弃标准的UISwitch
并制作一个自定义的UIControl
,这似乎对于这么微不足道的东西来说有点过头了。
重现此行为的代码位于连接到tableView单元格中的UISwitch
的以下方法中:
@IBAction func allWheelDriveSwitchValueChanged(_ sender: UISwitch) {
if sender.isOn {
sender.thumbTintColor = AppColor.myYellow
} else {
sender.thumbTintColor = AppColor.darkGray
}
}
这里的AppColor
是一个包含预设UIColor
对象的枚举类型。我尝试将其放入动画块中,并从单元格的contentView调用layoutIfNeeded
,但并没有成功。
如有帮助或见解,将不胜感激。