堆栈视图压缩到Xcode模拟器中的块

时间:2017-07-27 15:14:38

标签: ios swift swift3 xcode8 uistackview

因此,在对自动布局约束感到沮丧之后,我正在处理我的个人项目,我发现了Stack Views。在观看了关于该主题的几个教程和指南后,我想尝试一下。所以我创建了一个新的Xcode项目,并与他们玩了一段时间,他们似乎工作正常。但是,在将它们实现到我的大型项目的过程中,我遇到了一些问题,我希望这些问题是我的错误而不是Xcode 8错误。

在堆叠视图并将它们分开后,我得到了这个结果,这正是我想要实现的效果:

enter image description here

然而,当我在模拟器中运行它时,即使与故事板完全相同的大小,视图也会压缩成一个胖块状的混乱,完全不同于故事板上显示的内容:

(忽略绿色的东西,只是为了帮我布局)

enter image description here

//我如何堆叠视图

enter image description here

我主要逐行堆叠所有内容,然后将行堆叠在一起。然后我将主堆栈视图约束了10个点到前导和尾随的超级视图&& 28点到顶部布局指南,40点到底部布局指南。

如何正确堆叠这些该死的视图,使其在所有设备和屏幕尺寸上看起来完全相同?请尝试尽可能具体,包括内容模式等。

2 个答案:

答案 0 :(得分:2)

以下是我实施的解决方案:

查看HIERARCH

enter image description here

<强>规格

MainStackView

约束:Top - 20,Leading - 10,Trailing - 10,Bottom - 20

对齐:填充,分布 - 填充,间距 - 20

ROW1

约束:MainStackView的相等高度乘以 - 0.1

行2

没有

ROW3

约束:MainStackView的相等高度乘以 - 0.37

对齐:填充,分布 - FillEqually,间距 - 10

Row31 Row32 Row33

约束:没什么

对齐:填充,分布 - FillEqually,间距 - 10

Row34

约束:没有,使用乘数为Row34添加相等宽度的小视图约束 - 0.314

对齐:填充,分布 - 填充,间距 - 10

ROW4

约束:与Row1的高度相等,在与Row4相等宽度的小视图上添加约束,使用乘数 - 0.314

对齐:填充,分布 - 填充,间距 - 10

<强>输出

enter image description here

答案 1 :(得分:1)

  

首先,您需要创建单个stackview外侧,然后创建4个堆栈   查看上层栈视图的内侧。然后外层栈视图   对齐和分配是填充。内部1和4堆栈视图高度   约束相同,内部视图高度固定。

     

然后第3个内部堆栈视图有4个堆栈视图,所以前3个分布   是填充相等和第四堆栈视图分布填充和   手动设置约束。我希望这会对你有所帮助。