iOS动画:CGAffineTransformMakeScale在缩小之前增长

时间:2015-11-28 19:47:16

标签: ios swift animation

我遇到动画问题。 image视图从比例1开始。我想缩小它。代码似乎很简单:

image.transform = CGAffineTransformIdentity // <<-- seems to have no effect
UIView.animateWithDuration(5.0, animations: { () -> Void in
    self.image.transform = CGAffineTransformMakeScale(0.5, 0.5) 
    }) { (Bool) -> Void in
        // code for next steps
    }

问题:图像首先增长到看起来与目标比例因子成反比的东西(比例为0.5倍,比例为0.1倍,10倍)。然后它缩小回原始比例(就像执行实际比例变换所说的那样)。您可以在动画中看到它:代码在警报视图中确认后执行。

why grow before shrink?

为什么图像在缩小之前会增长?变换的初始化(使用CGAffineTransformIdentity)似乎没有效果。我发现另一个question似乎是同一个问题,但没有答案。帮助赞赏!

1 个答案:

答案 0 :(得分:0)

在查看我为此问题创建的动画的GIF时,我注意到同一图像上还会出现其他动画:图像稍微高频旋转。

我使负责旋转动画的计时器失效,并且缩放动画现在可以正常工作。

因此,问题是多个动画之间的干扰(一个旋转和相关的比例)作用于同一个图像视图。