为什么在自动布局CGAffineTransformRotate将转移animation视图?

我想旋转一个imageView使用下面的代码:

[UIView animateWithDuration:.25 animations:^{ self.imageView.transform = CGAffineTransformRotate(self.plusView.transform, M_PI_4); }]; 

有线的事情是:如果我运行这个代码没有自动布局,每一件事情都很好。 但是当使用自动布局时,图像视图会在旋转之前移动一个较小的像素,为什么?

在Xcode 5中使用自动布局时,需要添加一个约束来修复imageView在其容器中的水平中心和垂直中心。 如果您正在使用故事板,则可以使用约束选项轻松完成此操作。 如果您不希望imageView自动resize,则还需要使用约束来修正宽度和高度。

用Storyboard中的约束钉住视图的中心

在Storyboard中修改约束视图的大小

我没有评论chazzwozzer的答案的声誉(我的帐户重置与Facebooklogin的最近更改)。 这个答案对我来说很好,把把这个控制变成了一个UIView,对它有不同的限制。 然后,被转换的控件在该视图中被设置为水平和垂直中心。

FYI ..转换的转变不会发生在以后的iOS 8 ..只有在iOS 7.1。