iOS故事板限制/纵向和横向视图的特征

时间:2017-12-12 17:43:06

标签: ios swift xcode storyboard

我的iOS项目包含一个单独的UIView或UIViewController。控制器类称为MainViewController.swift。 视图控制器的视图有一个我放在底部的子视图: enter image description here

我设置了自动布局选项,以保持每个设备大小的子视图的距离相同: enter image description here

现在我想保持子视图始终位于父视图的短边,这意味着在横向模式下,子视图显示在父视图的右侧: enter image description here

我同时检查了一些教程和其他帖子:

此时我不清楚如何最好地实现这种行为? Possibilites我发现解决了这个问题:

  • 对特质不一样......但是怎么样?
  • 约束?
  • 以编程方式 - 我认为这将是最快的解决方案,但我真的想使用故事板并了解正确的用法。

2 个答案:

答案 0 :(得分:4)

在这里你可以玩大小类和特征。如果你想在纵向模式下给予约束,你必须选择紧凑的宽度和规则的高度以及横向紧凑宽度的紧凑高度。

请按照以下步骤分别限制纵向和横向。

1)请从特质选择横向和纵向模式。

2)现在,您可以逐个约束每个模式。假设我在纵向模式下为红色视图提供约束,并且我将为纵向尺寸类启用特定约束,因此它将对横向模式禁用。

enter image description here 3)一旦我们完成了肖像模式,我已经切换到紧凑高度紧凑的常规尺寸类,这是横向模式。

enter image description here

4)现在,我们可以约束横向模式,如上面的屏幕截图所示。

正如我们所看到的那样,对于当前大小类,禁用颜色浅的约束。

这就是我们如何分别限制横向和纵向模式。

答案 1 :(得分:0)

由于横向iPad和纵向iPad之间没有大小等级或特征差异,因此您最终必须以编程方式处理至少某些情况。既然如此,您也可以使用一种类似于以下方法的方法以编程方式处理所有情况:

  1. 获取当前屏幕尺寸
  2. 如果宽度>高度,添加约束以使子视图居中垂直并将其固定到右边缘。否则,添加约束以水平居中子视图并将其固定到底边。