我想将两个视图放入UIStackView中。我希望顶部项目始终是空间的30%,无论它出现什么设备(或方向)。因此,我希望底层视图为70%。如何告诉UIStackView我想使用百分比?
答案 0 :(得分:18)
只需为顶视图设置约束。
在故事板的文档大纲控件中 - 从顶视图拖动到堆栈视图,然后选择Equal heights
。这将使他们的高度相等。现在转到尺寸检查器,您应该看到约束。双击它并将乘数设置为0.3。然后更新帧。
如果底部视图没有自动调整大小或者它给出了一个错误,告诉您需要高度约束,只需重复该过程,但现在将乘数设置为0.7。
答案 1 :(得分:2)
来自Apple文档
UIStackViewDistributionFillProportionally堆栈的布局 视图调整其排列的视图大小,以便填充可用空间 沿着堆栈视图的轴。视图按比例调整大小 它们沿堆栈视图轴的内在大小。
因此,您应该将UIStackView
distribution
属性设置为UIStackViewDistributionFillProportionally
并设置intrinsic size
,即。{/ p>
您可以获取更多信息here和Intrinsic 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