如何逐步旋转UIImageView?

2 iphone objective-c uiimageview

我需要在90度内多次旋转图像我使用下面的代码,

CGAffineTransform transform = CGAffineTransformMakeRotation(PI/2);
shape.transform = transform;
Run Code Online (Sandbox Code Playgroud)

这里的形状是我的UIImageview.

问题是每次我点击旋转按钮它会将其从原始位置旋转,这不是我想要的.我想从新的位置旋转.

我是iphone编程的新手,如果我缺少一些非常基本的东西,请提前道歉,并提前感谢您的帮助.

基达

Bra*_*son 7

如果您想要进行动画这种旋转,你可能想要看我的回答这个问题,如果有人试图以动画视图的增量旋转.事实证明,使用CABasicAnimations进行变换的增量动画比您预期的要复杂一些.首先需要从其presentationLayer中读取UIView图层的当前变换,然后将其作为fromValue提供给动画.

但是,在您的情况下,您似乎正在使用UIView动画块来为视图的transform属性设置动画.您编写的代码只会将视图的变换设置为相同的90度旋转,它不会逐渐将视图旋转90度.要进行增量轮换,我相信您需要以下内容:

CGAffineTransform transform = CGAffineTransformRotate(shape.transform, M_PI / 2.0f);
shape.transform = transform;
Run Code Online (Sandbox Code Playgroud)

它将获取视图的当前变换,将其旋转90度,然后将生成的变换应用于视图.同样,这可能会遇到与CABasicAnimations相同的问题,在这种情况下,您应该查阅上面链接的答案.