Swift:在动画之后将UIView的帧重置为其约束

时间:2018-01-17 00:30:32

标签: ios swift uiview constraints cakeyframeanimation

我正在使用root中以编程方式添加的约束来设置UIImageView。

稍后,在用户与屏幕上的某些按钮进行交互后,我会通过使用viewDidLoad CGRect`值更改其框架来移动视图。

现在稍后在应用程序生命周期中,我希望CAKeyframeAnimation with an array of返回到最初放置的位置(使用我没有更改的约束)。有没有办法将帧重置为初始约束?

1 个答案:

答案 0 :(得分:2)

可以使用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")