以百分比指定两个 UIView 的约束

Posted

技术标签:

【中文标题】以百分比指定两个 UIView 的约束【英文标题】:Specify Constraints for two UIViews in percentage 【发布时间】:2016-05-28 13:49:49 【问题描述】:

下图展示了两个 UIView 的设计。在风景或肖像中,绿色应始终为 20%,黄色应始终为 80%。

我缺少一些约束或内容拥抱变化,因此尝试修复。

注意:内容拥抱和压缩优先级具有默认值。

【问题讨论】:

我这样做的方法是将深绿色视图的顶部、左侧和右侧设置为父视图,边距为 0,然后将其高度设置为父视图的 20%(通过设置它相等,然后编辑它)。然后将深绿色视图的顶部设置为与顶部的浅绿色视图的边距为 0,而从父视图的左右边缘和底部边缘的边距为零。 【参考方案1】:

您不希望顶视图的固定高度为 212。您希望它占超级视图的 20%。

    您应该删除顶视图的高度限制 212。 同时选择您的顶视图及其超级视图。 添加等高约束。 双击该约束并打开它的尺寸检查器。 将乘数更改为 0.2

【讨论】:

加上我在评论中所说的 @danh 我认为 OP 已经有了这些限制,但是确实需要 Dan 提到的限制。 关键思想是将子视图在顶部的底部和底部的顶部相互连接,因此底部正好获得 80% 的剩余高度。是在里面吗?我看不懂那些东西。 那行得通。我确实尝试过使用拥抱和压缩约束,但没有任何效果,可能是我的方法是错误的。除了重量(百分比)之外,“乘数”的任何其他使用。

以上是关于以百分比指定两个 UIView 的约束的主要内容,如果未能解决你的问题,请参考以下文章

如何将 AutoLayout 约束的常量设置为超级视图的百分比?

从自定义 UIView 类设置视图宽度约束不更新帧

如何使故事板中的 UiView 尊重百分比[重复]

是否可以使用约束将视图高度指定为父视图的百分比,但也可以限制最大结果高度?

使用函数调用将宽度约束设置为 UIView 不再起作用。 iOS ( Xcode 12.0.1 )

更新 SnapKit 约束偏移