如何处理不同设备方向的不同视图?

时间:2015-06-29 17:53:26

标签: ios uiview storyboard orientation nslayoutconstraint

我有纵向的子视图(故事板场景):

enter image description here

当设备旋转到横向时,我想像这样移动和调整大小:

enter image description here

处理此问题的最佳(或最简单)方法应该是什么? 我正在考虑以下选项:

  1. 创建不同的分隔xib个文件(一个用于纵向,另一个用于横向),并加载相应的文件?
  2. 当方向发生变化时,旋转+翻译+调整子视图大小?
  3. 直接创建两个子视图(水平 - 底部和垂直左侧)并根据方向隐藏相应的对象?
  4. 我需要这方面的帮助,我找不到适合我的解决方案。此外,如果我错过任何其他选择,我将很高兴知道。

    提前致谢

    编辑:这是一款针对iOS 7及更高版本的应用。我没有使用大小类功能,只是自动布局。

    编辑2:

    1. 将新框架设置为子视图。
    2. 此选项与选项2的区别是什么?

1 个答案:

答案 0 :(得分:0)

选项(2)将是您最好的选择。存储两组约束并根据方向安装/卸载它们。 如果您使用的是大小等级,则可以在IB中完全执行此操作。

(1)是过度杀伤,(3)是不必要的。

在纵向模式下,您的子视图有以下约束:

  • 左侧,右侧的水平空间限制
  • 底部的垂直空间约束
  • 高度限制

将设备旋转到横向后,您将更改约束,以便最终得到子视图的以下约束:

  • 顶部和底部的垂直空间限制
  • 左侧的水平空间约束
  • 宽度约束