使用自动布局约束优先级来改变不同设备上的视图大小

Posted

技术标签:

【中文标题】使用自动布局约束优先级来改变不同设备上的视图大小【英文标题】:Using auto layout constraint priorities to change the size of a view on different devices 【发布时间】:2015-09-28 10:38:23 【问题描述】:

我正在使用自动布局来创建 UI。我在那里设置了一些限制。

在上图中,如您所见,中间是一个图像视图。现在我想在 iPad 上设置不成比例的图像视图的大小。我想将其尺寸设置为比 iPhone 5 稍大,并位于视图的中心。我想在这里使用优先级。我怎样才能做到这一点?

【问题讨论】:

有多种方法可以为这种情况应用约束。例如。您对设备宽度有 90% 的宽度约束和另一个宽度约束作为宽度的最大限制,例如 400。因此,constraint1 == 0.9*deviceWidth 和 constraint2 【参考方案1】:

嘿,您可以将尺寸等级用于此类工作。在 iPad 中,根据需要应用不同的约束。请按照以下内容完整参考:https://developer.apple.com/library/ios/recipes/xcode_help-IB_adaptive_sizes/chapters/AboutAdaptiveSizeDesign.html

【讨论】:

大小类是耗时的工作。为一个视图制作两个屏幕,所以我不喜欢尺寸等级 是的,但如果有这样的要求,你就可以使用它。您可以做的另一件事是,您可以以编程方式检查设备是 iPhone 还是 iPad,并相应地更改约束。 大小类不应该比使用多个优先约束更多的工作。只需在 IB 中选择尺寸等级并打开/关闭适当的约束。然后做下一个尺寸课程。你只有一个场景可以适应

以上是关于使用自动布局约束优先级来改变不同设备上的视图大小的主要内容,如果未能解决你的问题,请参考以下文章

iOS 自动布局 >> 视图没有改变它的大小

动态调整视图大小(拖动运动)时自动布局约束中断

Swift自动布局与故事板

自动布局 - 定义应该改变哪个约束首先调整它的大小

自动布局和设置约束正在改变我的应用程序中按钮的大小

如何使用自动布局来调整表格视图单元格中的视图大小?