UIStackView - 想要一个百分比来定义每个项目

时间:2016-04-27 11:20:20

标签: ios swift interface-builder uistackview

我想将两个视图放入UIStackView中。我希望顶部项目始终是空间的30%,无论它出现什么设备(或方向)。因此,我希望底层视图为70%。如何告诉UIStackView我想使用百分比?

Example resulting view

3 个答案:

答案 0 :(得分:18)

只需为顶视图设置约束。

在故事板的文档大纲控件中 - 从顶视图拖动到堆栈视图,然后选择Equal heights。这将使他们的高度相等。现在转到尺寸检查器,您应该看到约束。双击它并将乘数设置为0.3。然后更新帧。

如果底部视图没有自动调整大小或者它给出了一个错误,告诉您需要高度约束,只需重复该过程,但现在将乘数设置为0.7。

答案 1 :(得分:2)

来自Apple文档

  

UIStackViewDistributionFillProportionally堆栈的布局   视图调整其排列的视图大小,以便填充可用空间   沿着堆栈视图的轴。视图按比例调整大小   它们沿堆栈视图轴的内在大小。

因此,您应该将UIStackView distribution属性设置为UIStackViewDistributionFillProportionally并设置intrinsic size,即。{/ p>

您可以获取更多信息hereIntrinsic content size

答案 2 :(得分:0)

Swift 5.2

要以编程方式实现

Error: Schema must contain uniquely named types but contains multiple types named "CurrentUserDTO".设置为在UIView内其超级视图尺寸的30%

UIStackView

完整代码实现:

viewA.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.3).isActive = true