【发布时间】:2016-04-07 21:00:51
【问题描述】:
我在 Any Width, Any Height 尺寸类中开始了一个项目,其中一个场景有几个 UI 元素(超过 10 个)。最近我想为 Any With、Compact Height 尺寸类更改此场景的布局(适用于横向 iPhone)。而且我找不到合适的方法来管理它。
最后,我不得不删除 Any Width、Any Height 中的所有 UI 元素,然后为该场景的所有元素创建两个副本,一个用于 Any Width、Compact Height,另一个用于 Any Width, 常规高度。所以Any,Any中的场景实际上变成了空白。但我觉得这一定不是正确的方法。
这是一个例子:
我从“任意宽度”、“任意高度”开始,并放置了两个标签(一个在另一个之上)来填充屏幕。
任何宽度,任何高度。约束设置。
任何宽度,紧凑高度,具有任何宽度,任何高度的约束
现在对于横屏的 iPhone,我想移动标签,使它们并排,所以首先,在 XCode 的底部,我更改为 wAny hCompact,然后拖动并调整标签的大小,使它们并排旁边。在添加其他约束之前,它如下所示。
请注意,文档大纲中突出显示的约束来自 Any Width、Any Height,并且它们都应用于 Any Width、Compact Height。
任意宽度,紧凑高度。卸载任意宽度、任意高度的约束
任意宽度,紧凑高度。添加了自己的约束
任何宽度,任何高度。现在没有约束,Xcode 抛出错误和警告
回到 Any Width, Any Height 尺寸类,因为我卸载了约束,所以没有应用约束。但是如果我重新添加约束,任何宽度、紧凑高度都会受到影响。
所以我安装了所有的约束,最初是从任意宽度、任意高度到任意宽度、常规高度。这将使项目运行,并且屏幕将在纵向和横向上正确显示。
但是,在 Any Width, Any Height 中,仍然没有约束,XCode 会抛出警告
就像我说的那样,我最终删除了该场景的 Any Width、Any Height 中的所有 UI 元素,然后在 Any Width、Compact Height 和 Any Width、Regular Height 中各创建一个版本。还必须为每一个创建出口和行动。
每次我想使用另一个尺寸类时,我应该如何在不创建一组单独的 UI 元素(并且不通过控件拖动来创建出口和操作)的情况下执行此操作?
【问题讨论】:
标签: ios xcode autolayout size-classes