【问题标题】:Resize image to its initial size将图像大小调整为其初始大小
【发布时间】:2017-09-15 13:29:09
【问题描述】:

我正在使用 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

        })
    }

当我想删除第二个动画并再次启动第一个动画时,两个图像 layer2 和 layer3 是从它们因第二个动画而获得的大小开始的。如何使用图像的初始大小重新启动第一个动画?

【问题讨论】:

    标签: swift image animation size scale


    【解决方案1】:

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

    例如:

    layer2.transform = .identity
    

    【讨论】:

    • 完美的解决方案。谢谢你。
    猜你喜欢
    • 2015-04-18
    • 1970-01-01
    • 2014-06-15
    • 2012-09-23
    • 2013-08-12
    • 2013-03-05
    • 1970-01-01
    • 2018-01-25
    • 1970-01-01
    相关资源
    最近更新 更多