如何逐步旋转UIImageView?

时间:2009-10-24 18:52:46

标签: iphone objective-c uiimageview

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

CGAffineTransform transform = CGAffineTransformMakeRotation(PI/2);
shape.transform = transform;

这里的形状是我的UIImageview。

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

我是iphone编程的新手,如果我遗漏了一些非常基本的东西而感到抱歉,并提前感谢您的帮助。

基达

1 个答案:

答案 0 :(得分:7)

如果您尝试为此轮播设置动画,则可能需要阅读my answerthis question,其中有人试图为视图的增量旋转设置动画。事实证明,使用CABasicAnimations进行变换的增量动画比您预期的要复杂一些。首先需要从其presentationLayer中读取UIView图层的当前变换,然后将其作为fromValue提供给动画。

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

CGAffineTransform transform = CGAffineTransformRotate(shape.transform, M_PI / 2.0f);
shape.transform = transform;

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