如何使用 Autolayout 在不同设备上保持 UIView 比例?

Posted

技术标签:

【中文标题】如何使用 Autolayout 在不同设备上保持 UIView 比例?【英文标题】:How to maintain UIView ratio across different devices using Autolayout? 【发布时间】:2016-11-22 07:00:30 【问题描述】:

我在LaunchScreen 中有一个UIView

我在UIView 中添加了以下约束。

我希望我的红色视图总是35% 的屏幕。

我将RedView 的高度计算为:我的ViewController 高度是667 我计算了35% 并分配给RedView

我想知道我的方法是否正确。因为iPhone6Plus 的宽度变化很小,高度变化很大。

我的限制对于 35:65 屏幕是否正确。

【问题讨论】:

【参考方案1】:

除了给出纵横比之外,您还可以给它一个 35% 的乘数。

第 1 步: 从 3 个侧面固定 RedViewRight-Top-Left

第 2 步:RedView 和 ViewController 的主视图设为等高。

第 3 步: 选择RedView's 等高约束并转到它的属性检查器。 (右四个标签)

第 4 步:Multiplier 值更改为0.35

现在 RedView 在两个方向上都将始终位于主屏幕的35%

【讨论】:

谢谢....我试过这个工作正常...我的解决方案可以吗?或者他们是其中的任何问题。 尝试在情节提要或预览中更改视图的方向,您会得到答案。

以上是关于如何使用 Autolayout 在不同设备上保持 UIView 比例?的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin iOS Autolayout:自动调整各种设备的宽度和垂直滚动,同时保持水平滚动禁用演示链接

如何在iPhone SE和5S上设置AutoLayout?

Swift + Autolayout:旋转 UILabel,保持在 UIView 旁边

使用 AutoLayout,当导航栏消失时,如何将 UILabel 保持在同一位置?

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

AutoLayout - 保持图像与水平约束的比例(Swift Xcode 6)