Iphone Can';t在不撤消旋转变换的情况下撤消缩放变换

Iphone Can';t在不撤消旋转变换的情况下撤消缩放变换,iphone,animation,uiview,ios,transform,Iphone,Animation,Uiview,Ios,Transform,这是对上一个问题的跟进。下面的代码通过缩放和旋转正方形来设置其动画。它通过进行旋转变换并向其添加缩放变换来实现这一点。那很好。完成后,它将调用throbReset。我曾经让throbReset将self的变换设置为cGraffineTransformMakeScale,这样可以取消缩放,但也可以取消旋转。因此,我尝试从当前的变换开始,并向其添加非缩放,但现在它什么都不做(可见) 您只是在缩放到相同的大小,因为您基本上是说,将当前变换在X上缩放为1:1,在Y上缩放为1:1。您可能希望在第二种方法

这是对上一个问题的跟进。下面的代码通过缩放和旋转正方形来设置其动画。它通过进行旋转变换并向其添加缩放变换来实现这一点。那很好。完成后,它将调用
throbReset
。我曾经让
throbReset
self的变换设置为
cGraffineTransformMakeScale
,这样可以取消缩放,但也可以取消旋转。因此,我尝试从当前的
变换开始,并向其添加非缩放,但现在它什么都不做(可见)



您只是在缩放到相同的大小,因为您基本上是说,将当前变换在X上缩放为1:1,在Y上缩放为1:1。您可能希望在第二种方法中执行0.5,0.5,而不是1.0,1.0

CGAffineTransform xForm = [self transform];
xForm = CGAffineTransformScale(xForm,0.5, 0.5);

请记住,当您添加旋转以按相反顺序执行时,请先旋转,然后缩放。如果您涉及到翻译,这将更为重要,但在本例中可能会起到任何作用。

因此,如果我刚刚将我的
transform
属性设置为
cGraffineTransformMakeScale(1.0,1.0)
它会不会回到原始大小?我想,
cGrafineTransformMakeScale
cGrafineTransformScale
之间没有什么区别。我的意思是,我了解参数是什么,但不了解底层功能。您在CGAffine函数调用中指定的变换上进行相对操作,因此TransformScale相对于自身缩放输入。在本例中,输入当前变换,其比例为1:1。我不确定MakeScale的差异,也许它假设身份转换为输入转换。
CGAffineTransform xForm = [self transform];
xForm = CGAffineTransformScale(xForm,0.5, 0.5);