【问题标题】:How to lay out UIImageViews based on the height that is left?如何根据剩下的高度布局 UIImageViews?
【发布时间】:2026-02-12 17:15:01
【问题描述】:

我正在尝试创建此布局,但我苦苦挣扎,以至于我无话可说。我已经尝试了三天,但仍然无法创建布局。

如果视图的高度发生变化,我试图将三个图像视图置于中间比例,但它们的行为不正确。我已经成功地使比率正确,但是图像要么在蓝色按钮后面,要么蓝色按钮突然失去它的高度或文本消失。

难道不能在中间有三个图像视图,在标题和文本+蓝色按钮布局后剩下的任何高度,然后以正确的比例正确显示它们

【问题讨论】:

    标签: ios xcode swift autolayout ios9


    【解决方案1】:

    您可以在这里尝试多种方法:

    1. 尺寸等级:
      为每个可能的大小布置视图(可能是最简单但最不灵活的
    2. 使用具有不同优先级的约束:
      您可以通过添加高度约束然后将其关系设置为等于或小于来设置图像视图的最大高度。这允许图像放大直到达到最大尺寸。

      然后在底部框和图像之间添加第二个约束。将此约束的优先级设置为 750。当底部视图向下移动时,这会使图像的高度增加。

      然后添加另一个设置图像纵横比的约束。如果您将视图模式用于 Aspect Fit,则图像现在将始终按比例放大以适合图像视图。

      要使所有图像按比例缩放,请在它们之间添加等宽和等高的约束,然后设置因子以匹配这些图像之间的比例。

      最后一步是现在正确地垂直对齐图像,如您在图片中显示的那样。为此,请在图像之间添加约束,使它们通过垂直中心、底部、基线或顶部对齐。

    【讨论】: