Swift:在动画后将 UIView 的框架重置为其约束
Swift: Reset frame of a UIView to its constraints after animation
我正在使用 viewDidLoad
中以编程方式添加的约束来设置 UIImageView。
稍后,在用户与屏幕上的一些按钮交互后,我通过使用 CAKeyframeAnimation with an array of
CGRect` 移动值更改其框架来移动视图。
现在在应用程序生命周期的后期,我希望 UIImageView
返回到它最初放置的位置(使用我没有更改的约束)。有没有办法将框架重置为其初始约束?
可以使用 removeAnimation
、doc here 恢复到原始值。因此,如果使用设置您的动画(假设 move
),例如:
let animation = CAKeyframeAnimation()
animation.keyPath = "position.y"
animation.values = [0, 200]
animation.keyTimes = [0, 1]
animation.duration = 1
animation.isAdditive = true
animation.fillMode = kCAFillModeForwards
animation.isRemovedOnCompletion = false
innerView.layer.add(animation, forKey: "move")
然后当你需要恢复时,你可以调用:
innerView.layer.removeAnimation(forKey: "move")
我正在使用 viewDidLoad
中以编程方式添加的约束来设置 UIImageView。
稍后,在用户与屏幕上的一些按钮交互后,我通过使用 CAKeyframeAnimation with an array of
CGRect` 移动值更改其框架来移动视图。
现在在应用程序生命周期的后期,我希望 UIImageView
返回到它最初放置的位置(使用我没有更改的约束)。有没有办法将框架重置为其初始约束?
可以使用 removeAnimation
、doc here 恢复到原始值。因此,如果使用设置您的动画(假设 move
),例如:
let animation = CAKeyframeAnimation()
animation.keyPath = "position.y"
animation.values = [0, 200]
animation.keyTimes = [0, 1]
animation.duration = 1
animation.isAdditive = true
animation.fillMode = kCAFillModeForwards
animation.isRemovedOnCompletion = false
innerView.layer.add(animation, forKey: "move")
然后当你需要恢复时,你可以调用:
innerView.layer.removeAnimation(forKey: "move")