我需要在90度内多次旋转图像我正在使用以下代码,
CGAffineTransform transform = CGAffineTransformMakeRotation(PI/2);
shape.transform = transform;
这里的形状是我的UIImageview。
问题是每次我点击旋转按钮它会将其从原始位置旋转,这不是我想要的。我想从新的位置旋转。
我是iphone编程的新手,如果我遗漏了一些非常基本的东西而感到抱歉,并提前感谢您的帮助。
基达
答案 0 :(得分:7)
如果您尝试为此轮播设置动画,则可能需要阅读my answer至this question,其中有人试图为视图的增量旋转设置动画。事实证明,使用CABasicAnimations进行变换的增量动画比您预期的要复杂一些。首先需要从其presentationLayer中读取UIView图层的当前变换,然后将其作为fromValue提供给动画。
但是,在您的情况下,您似乎正在使用UIView动画块来为视图的transform属性设置动画。您编写的代码只会将视图的变换设置为相同的90度旋转,它不会逐渐将视图旋转90度。要进行增量轮换,我相信您需要以下内容:
CGAffineTransform transform = CGAffineTransformRotate(shape.transform, M_PI / 2.0f);
shape.transform = transform;
将抓取视图的当前变换,将其旋转90度,然后将生成的变换应用于视图。同样,这可能会遇到与CABasicAnimations相同的问题,在这种情况下,您应该查阅上面链接的答案。