作为UIStackView子视图的视图无法旋转

时间:2016-09-11 00:07:43

标签: ios swift uiviewanimation uistackview subviews

我有一个UIStackView,其中有一个名为A的子视图。我想旋转视图A.但没有任何反应。我可以旋转A层了,没关系。那么如何制作UIStackView子视图的动画?

1 个答案:

答案 0 :(得分:0)

将“排列的子视图”添加到堆栈视图后,其框架将由堆栈视图隐式添加的约束自动管理。虽然您可以假设添加可以设置动画的其他约束,但是没有一组约束可以让您完成旋转。

一种解决方案是将另一个视图嵌套在由堆栈管理的视图中。然后,您可以在外部视图中覆盖layoutSubviews以选择退出内部视图的自动布局,以便您可以管理其旋转。无论你在内部视图的框架上做什么更新,都可以放在动画块中。

修改

根据UIViewtransform属性的文档,“在iOS 8.0及更高版本中,transform属性不会影响自动布局。自动布局根据其未转换的帧计算视图的对齐矩形“。这似乎暗示即使存在自动布局约束,旋转也应该起作用。也就是说,我的猜测是转换视图实际上只是转换底层图层的便利。