CGAffineTransformMake - 如何保存UIimageview的状态以进一步处理它

0 iphone objective-c cgaffinetransform

我正在使用CGAffineTransformMake垂直翻转UIImageView.它工作正常,但它似乎没有保存UIImageview的新翻转位置,因为当我尝试第二次翻转它(执行下面的行代码)时它只是不起作用.

shape.transform = CGAffineTransformMake(1,0,0,1,0,0);

请帮忙.

提前致谢.

基达

Tec*_*Zen 5

转换不会像您期望的那样自动添加/累积.分配变换只会转换目标一次.

每个转换都是高度特异的.如果应用旋转视图+45度的旋转变换,您将看到它只旋转一次.再次应用相同的变换不会使视图再旋转+45度.相同变换的所有后续应用都不会产生可见效果,因为视图已经旋转+45度,这就是变换所做的全部.

要使变换累积,您已将新变换应用于现有变换,而不是仅替换它.因此,如前所述,您使用的每个后续轮换:

shape.transform = CGAffineTransformRotate(shape.transform, M_PI);
Run Code Online (Sandbox Code Playgroud)

这会将新变换添加到现有变换中.如果以这种方式添加+45度变换,视图将在每次应用时再旋转+45.