将图片大小调整为初始尺寸

时间:2017-09-15 13:29:09

标签: swift image animation size scale

我正在使用2个动画。 启动屏幕时,第一个动画从viewDidLoad开始。

此动画适用于2个名为layer2layer3的图像。

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()

并且正在对layer2layer3应用不同的动画。

第二个动画是

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从他们因第二个动画获得的大小开始。如何使用图像的初始大小重新启动第一个动画?

1 个答案:

答案 0 :(得分:1)

您可以使用CGAffineTransform.identity重置已转换为原始比例的视图。

例如:

layer2.transform = .identity