我想为自定义视图更改约束的动画。
我尝试过类似的方法:
if widthConstraint.isActive {
widthConstraint.isActive = false
widthConstraintA.isActive = true
} else {
widthConstraintA.isActive = false
widthConstraint.isActive = true
}
UIView.animate(withDuration: 1) {
imageView.layoutIfNeeded()
}
乘数相同(重新创建像Can i change multiplier property for NSLayoutConstraint?这样的新约束)。但所有州立即改变。
是否有任何方法可以帮助在两种状态之间创建平滑的插值动画?
答案 0 :(得分:2)
是的,假设storyboard中的view1对主视图有宽度约束(代码中的self.view),就像这样
view1Width = view * 0.7 + constant
而不是通过更改Active属性ORRR来创建2个约束并在它们之间切换[通过使用旧乘数停用当前约束并使用新乘数创建新约束]将其保留1个约束并使用它的常量
假设我想将view1乘数改为0.9而不是0.7
我可以这样做
self.view1Width.constant += self.view.frame.size.width * 0.2
与减法相同
有了这个想法,你不需要陷入如何为活动开/关动画,但你仍然使用
self.view.layoutIfNeeded()