如何在使用autolayout更改CALayer anchorPoint后保持UIView可见位置?

时间:2014-06-23 12:12:44

标签: ios uiview core-animation autolayout calayer

在我的iOS应用程序中,我想更改CALayer的anchorPoint,以便我可以执行特定的旋转(从角落)。我正在使用在界面构建器中创建的UIImageView。

我知道更改图层的anchorPoint会影响图层和视图的框架,因此需要更新图层的位置。所以我使用了here解释的解决方案。

在更改任何内容之前,这里是视图:

enter image description here

self.square.layer.anchorPoint : {0.5, 0.5}
self.square.layer.position : {125, 125}
self.square.layer.frame : {{0, 0}, {250, 250}}
self.square.frame : {{0, 0}, {250, 250}}

以及设置新的anchorPoint和位置后的情况(使用this solution

enter image description here

self.square.layer.anchorPoint : {0, 1}
self.square.layer.position : {0, 250}
self.square.layer.frame : {{0, 0}, {250, 250}}
self.square.frame : {{0, 0}, {250, 250}}

在截图上,square是一个没有任何图像和紫色背景的UIImageView,但是当我使用UIView时行为是一样的。我不明白为什么视图被移动但是打印的框架仍然是相同的。怎么可能?我错过了什么?

编辑:

我正在使用自动布局。禁用后一切都很好,但这并不方便。如何在不禁用自动布局的情况下实现此目的?

0 个答案:

没有答案