UIKit:当我在动画块中有一个UIView.animate时会发生什么?

问题描述

通常,我可能会想拥有一个通常设置动画的属性。换句话说

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毫秒内变成红色? willSetdidSet有关系吗?如果我直接将UIView.animate内联嵌套而不是在setter中嵌套,会发生什么情况?

通常,在二传手中设置动画块可能不是一个好习惯吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)