不同设备宽度的不同尺寸和视图对齐方式

时间:2017-01-17 11:49:53

标签: ios xcode autolayout

如何在纵向模式下以及最大宽度为400px且与右侧对齐的横向上,视图跨越iPhone 6上的设备宽度?

这可以通过使用设备类和/或改变特征来实现吗?我真正想要的是,视图适应设备的宽度:如果它宽于400px(因为我将设备旋转到横向模式或因为应用程序在iPhone Plus或iPad上运行),它应该不再跨越显示器的宽度,但最大宽度为400px,坐在右侧。也许这只能通过代码完成?

感谢您的任何意见。

1 个答案:

答案 0 :(得分:2)

  

我真正想要的是,视图适应的宽度   设备:如果它宽于400px(因为我将设备旋转到   横向模式或因为应用程序在iPhone Plus或iPad上运行)   应该不再跨越显示器的宽度,而是有一个   最大宽度为400px,位于右侧。

这可以通过设置以下约束来控制视图的宽度和位置来实现。

  1. 将视图固定到其超级视图的后端,其常量为0,优先级为1000
  2. 将视图固定到其超级视图的前沿,常量为0,优先级为750
  3. 为视图设置宽度约束,并将小于或等于设为400,优先级为1000
  4. 在iPhone 6的纵向中查看时,很容易满足所有这三个限制条件。

    landscape 中的iPhone 6上查看时,约束2(具有较低优先级)将被破坏以满足其他2个约束。 自动布局将尽力满足约束2,并在不破坏400单位宽度约束的情况下使视图尽可能宽。

    您的视图需要其他约束来确定其高度和垂直位置。

    constraints in Storyboard

    gif showing running in the simulator