1

我已经失去了与自适应布局和大小类混淆的想法。并不是说我一开始就是个天才,但现在我秃了。

假设我有一个非常简单的布局,我想确保在 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 上看起来完美,那么建议的解决方法是什么?

4

3 回答 3

1

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

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

于 2015-01-29T19:06:20.097 回答
0

只有一种名为 compact size 的 Size-classes 可用于所有不同尺寸的 iPhone 设备。因此,解决方案是 1。当您设置约束时,您必须设置关系(等于、大于或等于或小于或等于)。这有助于根据当前设备的大小调整视图大小或视图之间的间距。

为了获得您的预期外观,我们必须明确不同的约束设置,具有高或低优先级、关系、不同大小的约束值(compact-regular、compact-compact、regular-regular、regular-compact)。

于 2015-03-19T04:19:50.927 回答
0

在这里查看我的答案:

https://stackoverflow.com/a/28093987/1135714

正如我所说,AutoLayout 不是特定于设备的,但有一种解决方法。您可以通过代码放置UIView或设置约束(这很容易)。

于 2015-01-29T19:04:59.900 回答