我正在使用2个动画。
启动屏幕时,第一个动画从viewDidLoad
开始。
此动画适用于2个名为layer2
和layer3
的图像。
func firstAnimation(){
UIView.animate(withDuration: 1, delay: 0, options:
UIViewAnimationOptions.repeat , animations: {
self.layer2.transform = CGAffineTransform(scaleX: 1.5, y: 1.5)
self.layer3.transform = CGAffineTransform(scaleX: 2, y: 2)
}, completion: { finished in
})
}
当长按一个名为layer0
的图像时,此代码会停止firstAnimation
():
layer2.layer.removeAllAnimations()
layer3.layer.removeAllAnimations()
并且正在对layer2
和layer3
应用不同的动画。
第二个动画是
func secondAnimation() {
UIView.animate(withDuration: 20, delay: 0, options:
UIViewAnimationOptions.curveEaseOut , animations: {
self.layer2.transform = CGAffineTransform(scaleX: 10, y: 10)
self.layer3.transform = CGAffineTransform(scaleX: 10, y: 10)
}, completion: { finished in
})
}
当我想要删除第二个动画并再次启动第一个动画时,2个图像layer2和layer3从他们因第二个动画获得的大小开始。如何使用图像的初始大小重新启动第一个动画?
答案 0 :(得分:1)
您可以使用CGAffineTransform.identity
重置已转换为原始比例的视图。
例如:
layer2.transform = .identity