ios – 为什么在使用CGAffineTransformMakeRotation旋转它时,视图会改变位置

我有以下超级简单的动画,我基本上是从原来的角度/中心旋转一个视角2弧度,它旋转很好,我唯一的误会就是为什么视图从旋转发生时的原始位置移动.
[UIView animateWithDuration:1.0 animations:^{
        self.someView.transform = CGAffineTransformMakeRotation( 2 );
    }];

当上面的代码旋转时,为什么视图移动?

我正在试图在CGAffineTransform Reference中看到这些信息.

了解锚点point.

我发现这个线程,但它没有显示具体的答案.
Why rotating imageView,it changes position?

非常感谢

解决方法

由于@fs_tigre请求,我添加了另一个答案.问题在于您的xib文件中的自动布局,不幸的是,这是为什么会影响转换.
现在这里是我解决问题的步骤:

首先你需要摆脱你的汽车布局(是的,你必须)
取消选中使用自动布局

2-删除所有限制,并自动调整您的视图将被旋转的掩码,如屏幕截图所示
(这里我有我的蓝色框,看右边的自动调整,没有选择)

我已经对您的轮换代码进行了一些更改

self.someView.layer.anchorPoint = CGPointMake(0.5,0.5);
    // one degree = pi/180. so...
    // rotate by 90
    CGFloat radians = (M_PI/180) * 90;
    [UIView animateWithDuration:1.0 animations:^{
        self.someView.transform = CGAffineTransformRotate(self.someView.transform,radians);
    }];

点击旋转看魔术:)

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...