iphone - 如何增量旋转 UIImageView?

标签 iphone objective-c uiimageview

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

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

这里的形状是我的 UIImageview。

问题是每次我单击旋转按钮时,它都会从原始位置旋转它,这不是我想要的。我希望它从新位置旋转。

我是 iPhone 编程新手,如果我遗漏了一些非常基本的东西,我深表歉意,并提前感谢您的帮助。

基达

最佳答案

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

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

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

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

关于iphone - 如何增量旋转 UIImageView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1618751/

相关文章:

swift - 从 MTKView 创建的 UIImage 导致颜色/不透明度差异

ios - 自动调整 ImageView 大小

iphone - 为布局约束添加优先级

android - 我的游戏 Canvas 像在电脑上一样被缩小了

Objective-C:调配方法调用的方法应该调用原始实现

ios - 在 UIViewController 之间传递异步数据检索状态

objective-c - C99 指定初始化程序或 CGMake 宏?

ios - TableView 单元格中的 ScrollView 将无法正确显示图像,并且 swift 4 中的分页模式下有一页额外的页面

ios - 如何检查 iPhone X 浏览器中的元素?

iphone - iOS - 使用 AVCaptureSession 拍摄图像