快速动画持续时间,即使我不想要(自动?)

时间:2017-04-24 18:52:28

标签: swift animation catransform3d

在我的应用程序中,我需要一些动画,但如果它已经动画了,则不需要持续时间。但我的问题是它会自动添加持续时间。

在这里你可以看到2个函数,第二个没有持续时间,但它确实有一个持续时间(可能是1秒),第一个函数有一个持续时间(它应该有,那没关系)但它不是0.6秒因为如果我将它设置为30,它仍然可以非常快速地动画。

我做错了什么,提前谢谢!

func openMessage() {
    UIView.animate(withDuration: 0.6, delay: 0.0, options: [], animations: {
        var t = CATransform3DIdentity;
        t = CATransform3DMakeRotation(CGFloat(3 * Float.pi / 4), 0, 0, 1)
        self.moveableLineLayer.transform = t;
    }, completion:{(finished:Bool) in })
}

func openMessageWithoutAnimation() {
    self.moveableLineLayer.transform = CATransform3DIdentity
    var t = CATransform3DIdentity;
    t = CATransform3DMakeRotation(CGFloat(3 * Float.pi / 4), 0, 0, 1)
    self.moveableLineLayer.transform = t;
}

1 个答案:

答案 0 :(得分:1)

考虑使用velocity参数。来自文档:

<强>速度

初始弹簧速度。要平滑开始动画,请将此值与附件之前的视图速度相匹配。 值1对应于一秒内遍历的总动画距离。例如,如果总动画距离为200点,并且您希望动画的开始与100 pt / s的视图速度匹配,则使用值0.5。