ios - CGAffineTransformMakeTranslation:如何一次应用两个动画

标签 ios cocoa-touch core-animation cgaffinetransform

我有一种看法,我想以两种方式进行转变。首先,我想在y轴上移动它。然后,我想放大它。

但是,当我使用以下代码时,对象首先被移动,然后在缩放时又移回到其原始位置。

是否可以在不取消第一个转换的情况下立即应用两个转换?

抱歉,如果这是基本操作,则将不胜感激!

   [UIView animateWithDuration:animationDuration
                      delay:0
                    options:UIViewAnimationOptionCurveEaseIn
                 animations:^{

                 currentCover.transform = CGAffineTransformMakeTranslation(0, 0-keyboardTop+35);


                 }
                 completion:^(BOOL finished) {


                 [UIView animateWithDuration:animationDuration
                      delay:0
                    options:UIViewAnimationOptionCurveEaseIn
                 animations:^{ 

                 [currentCover setTransform:CGAffineTransformMakeScale (1.3, 1.3)];


                 }
                 completion:^(BOOL finished) { }
 ];



                 }
 ];

最佳答案

您应该将一个变换与另一个变换相乘。每个变换(缩放和平移)都是变换矩阵。要组合它们,只需在使用前将它们彼此简单地复制多个即可。乘法的顺序决定了变换的应用顺序

关于ios - CGAffineTransformMakeTranslation:如何一次应用两个动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7746440/

相关文章:

iphone - iOS 应用程序可以使用哪些文件?

iphone - 3D立方体问题!第1部分

ios - 无法将 NSDictionary 参数写入自定义对象

ios - 显示 "Cannot find iBeacon"消息

ios - ios13 上的标签栏图像

ios - UIPanGestureRecognizer 没有名为 touchesBegan 的成员

iphone - 使用 addAttribute 修改整个 NSMutableAttributedString :

ios - 在 iOS 上使用 resizableImages 时避免混合层

ios - 在 iOS 中更改 CAKeyframeAnimation 中间动画的速度

ios - View Controller 不会关闭并立即呈现新的 View Controller