问题描述
通常,我可能会想拥有一个通常设置动画的属性。换句话说
class SelectableView: UIView {
var isSelected: Bool = false {
willSet {
UIView.animate(withDuration: 0.200) {
self.backgroundColor = .red
}
}
}
}
但是,我意识到这可能不是最佳实践。例如,当我在其他地方使用我的课程时,我可能会意外地执行以下操作:
let k = SelectableView()
UIView.animate(withDuration: 0.500) {
k.isSelected = true
k.alpha = 1.0
k.backgroundColor = .red // notice this!
}
在这种情况下,甚至会发生什么?那里的行为到底是什么?颜色会在500毫秒还是200毫秒内变成红色? willSet
与didSet
有关系吗?如果我直接将UIView.animate
内联嵌套而不是在setter中嵌套,会发生什么情况?
通常,在二传手中设置动画块可能不是一个好习惯吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)