1

使用 AutoLayout,是否可以将视图(按钮、图像等)保持在同一位置,但在设备旋转时只需将其旋转 90 度?

例如,在下面的图像中,视图完全保持在纵向放置(与边缘的距离相同),但横向旋转。

肖像 景观

4

2 回答 2

2

您将提供的图像中的视图描述为“停留在完全相同的位置”,但我认为这是对自动布局和旋转行为的误解。您的布局在两个示例之间发生了显着变化。两个视图之前都沿其左边缘对齐,现在它们沿其底部边缘对齐。

基本上:当您旋转设备时(让我们说从标准纵向到主左横向),您正在更改哪个视图是顶部,而不是顶部视图指向的方向。

如果您想重新创建您提供的旋转视图的外观,您有几个选择。我建议查看视觉格式化语言,这是一种以编程方式添加约束的好方法……它看起来更容易。如果您想要一个好的介绍,请查看 WWDC 2012 的 iOS 自动布局演讲。然后,您可以在设备旋转时添加和删除适当的约束。(可能需要玩一些)。View Controller Programming Guide 中还有一个关于“创建自定义横向”的部分可能会有所帮助。

于 2013-06-25T23:36:12.797 回答
2

如果您允许界面方向旋转,那么您必须更改旋转约束以将视图放置在您想要的位置。

如果您不允许界面方向旋转,则必须订阅设备方向更改通知。当方向改变时,您可以更新视图的变换以旋转它们。如果视图是方形的,那就足够了。如果视图不是方形的,您还需要根据旋转的框架修改约束。

于 2013-06-25T22:49:54.503 回答