如何在相同大小的类中给出不同的约束(xcode 8 AutoLayout)

Posted

技术标签:

【中文标题】如何在相同大小的类中给出不同的约束(xcode 8 AutoLayout)【英文标题】:how to give different constraint in same size class (xcode 8 AutoLayout) 【发布时间】:2016-10-29 10:15:28 【问题描述】:

大小类相同,约束也相同,但绿色框的高度不同。 对于相同大小的类,常量是否应该相同?

如果不是,那么我将如何使用自动布局获得相同高度的绿色框?我想要绿框高度 = 设备总高度的 25%

提前谢谢..

【问题讨论】:

【参考方案1】:

由于您已经给出了绿色框与底部的恒定距离,因此它将保持所有设备的恒定距离。

其次,您已将绿色框的顶部与 topLayoutGuide 对齐,因此它将在所有设备上保持相同。

所以基本上 top 用 topLayout 固定,bottom 距离固定为 502。如果你在具有不同屏幕高度的不同设备上运行相同的设备,它只会自动调整你的绿框高度,因为其他两个参数(top,bottom)是固定的。

请为您的绿色视图添加高度限制,如图所示。它会给你 greenViewHeight = superViewHeight 的 25%

这是为您的问题创建的演示

【讨论】:

谢谢。那么我将如何使用自动布局获得相同高度的绿色框?我想要绿框高度 = 设备总高度的 25% 我已经编辑了答案。请检查您的查询。 谢谢。它解决了我的问题。我是新用户,所以我的声誉不超过 15,所以不能投票。但我已接受作为答案。

以上是关于如何在相同大小的类中给出不同的约束(xcode 8 AutoLayout)的主要内容,如果未能解决你的问题,请参考以下文章

iOS 8 Xcode 6:灰色约束的意义何在?

在 iPhone 上为不同的图像尺寸使用 Xcode 自动布局

OCUnit 测试在未测试的类中给出错误

如何在 xcode6 中使用大小类

UIStackView 和子视图大小类

Xcode Storyboard 图像大小