ios 自适应布局/尺寸 类 到目标特定 phone 尺寸?

ios adaptive layout / size classes to target specific phone size?

我已经忘记了处理自适应布局和大小的问题 类。不是我本来就是天才,而是我现在秃了

假设我有一个非常简单的布局,我想确保它在 3.5、4、4.7 和 5.5 iphone 上看起来完美(完美是指我的所有 ui 元素都存在)。

好的,我从任意大小开始,所有元素都放置有约束,没有警告,没有错误。很高兴去。在预览模式加载各种尺寸的手机,5.5 看起来不错,4.7 看起来不错,4 看起来不错,3.5 需要一些工作。

我想使用 3.5 和 4(不是 4、4.7 和 5.5)大小 类 是实现此目标的方法吗?我需要做多个故事板还是做这个或某种类型的设备尺寸检查代码?我遇到了一个走多个故事板路线的人,看起来像个大黑客,很多人对他的方法持怀疑态度,但我敢打赌他还有头发。

我猜我在问什么,可以使用尺寸 类 来定位特定尺寸吗?如果您希望您的布局在 3.5、4、4.7 和 5.5 上看起来完美,建议的方法是什么?

在这里查看我的回答:

正如我所说,AutoLayout 不是特定于设备的,但有一个解决方法。您可以放置​​ UIView 或通过代码设置约束(这非常简单)。

不,大小 classes 不能真正帮助你。请不要制作多个故事板。很难在没有看到您的 UI 以及它在较小屏幕上存在的问题的情况下给出一些具体的建议,但在大多数情况下,您的 UI 无法在相同尺寸 [=14= 的尺寸之间正确缩放],我想说你可能应该重新考虑你的 UI 或你的约束。

在最坏的可接受情况下,您可能会遇到有问题的约束,并根据屏幕尺寸从代码中更新这些约束。

只有一种尺寸-类 命名紧凑尺寸适用于所有iPhone 不同尺寸的设备。所以,解决方案是 1.当您设置约束时,您必须设置关系(等于,大于或等于或小于或等于)。这有助于根据当前设备的大小调整视图大小或视图之间的间距。

为了得到你预期的外观,我们必须清楚不同大小的高或低优先级、关系、约束值的不同约束设置(紧凑-常规、紧凑-紧凑、常规-常规、常规-紧凑) .