单个UIView上的CGAffine变换序列

时间:2014-07-24 05:53:05

标签: objective-c uikit core-graphics uiviewanimation cgaffinetransform

我正在尝试合并CGAffineTransform动画,例如旋转,缩放等等。

缩放和旋转的问题在于,如果我按顺序执行它们,当我向下/向上缩小视图然后再旋转时;在旋转时,视图会恢复到原始比例,但不会保持在我指定的新比例中。

如何缩放,旋转,飞行,再次缩放和再次旋转?

我了解到我可以使用CGAffineTransformConcat()组合2 CGAffineTransform之类的比例和旋转。

但是有可能使用concat实现我想要的东西,我有同时执行的CGAffineTransform组合然后继续序列吗?或者即使不使用CGAffineTransformConcat,还有办法吗?我希望有人可以帮助我。感谢。

1 个答案:

答案 0 :(得分:2)

我认为你在做什么就是这样......

//scale
view.transform = CGAffineTransformMakeScale(2.0, 2.0);

//rotate
view.transform = CGAffineTransformMakeRotation(M_PI);

但是,这会将转换应用于身份转换,因此当您轮换时,scale将被设置回1.0

所以你需要做一些像......

//scale
view.transform = CGAffineTransformScale(view.transform, 2.0, 2.0);

//rotate
view.transform = CGAffineTransformRotate(view.transform, M_PI);

这将获取当前变换并将新变换应用于它。