如何做这个自定义自动布局?

How to do this custom auto layout?

我正在尝试使此布局正常工作,但在过去两天尝试失败。

所有标签的高度都是固定的。左边的所有方块都是不重要的图标图像。

我的问题是关于 Y 轴的。这是 iPhone SE 的框架。我需要它相应地扩展到更大的屏幕,如 iPhone 8 Plus 和 iPhone X。同样,我可以在 Interface Builder 中为 iPhone X 设计它,它应该合理缩小直到 iPhone 4s。就我的理解而言,尺寸 类 不适用于 iPhone - iPhone 变体,因为它们都是紧凑的宽度和常规高度。

这些以蓝色突出显示的垂直线在实际应用中是看不到的。它们试图始终将两个 UILabel 框架之间的黑色水平线居中。 所以,我真正需要的是:如果屏幕变小,蓝色垂直线应该缩小。如果屏幕变大,蓝色垂直线应该会扩展。 当我尝试让 UITableView 也具有可变高度时,问题就出现了。

有人对我如何解决这个问题有任何想法吗?这对我来说很重要。

如果您希望它们根据您的屏幕具有相同的比例,您可以使用乘数来制作它们:

尝试使它们与您的容器视图高度相同,但乘数为 0.15 或其他。如果它们相等,则 1:0.15 需要一个约束,所有其他约束都等于这个

有很多方法可以实现您的要求,但 UIStackView 非常适合这类事情。要详细回答您的问题会花费太长时间,但这是界面生成器中快速模型的屏幕截图,也许您可​​以弄明白。

我不太明白你所说的那些蓝线是什么意思,在我的示例中,tableview 高度是动态的,因为它的拥抱优先级低于其他元素。但是您可以为每个元素提供所需的高度并将堆栈视图分布 属性 设置为 "fill equally",然后堆栈视图将在 y 轴上适合您的屏幕并在元素之间创建相等的间距。

和模拟器截图:

这里我给每个容器视图一个静态高度并将主堆栈视图分布设置为"equal spacing",如您所见,它调整了容器视图之间的间距: