我在Any Width,Any Height size类中开始了一个项目,对于其中一个场景,有几个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,Compact Height
回到Any Width,Any Height size类,由于我卸载了约束,因此不会应用约束。但如果我添加了约束,任何宽度,紧凑高度都会受到影响。
所以我安装了所有约束,从任意宽度,任意高度到任意宽度,常规高度。这将使项目运行,屏幕将在纵向和横向上正确显示。
但是,在Any Width,Any Height中,仍然没有约束,XCode会抛出警告
就像我说的那样,我最终删除了该场景的Any Width,Any Height中的所有UI元素,然后在Any Width,Compact Height和Any Width,Regular Height中创建了一个版本。还必须为每个人创建出口和行动。
每次我想使用另一个尺寸类时,如果不创建一组单独的UI元素(并且没有控制拖动以创建出口和动作),我该怎么做呢?
答案 0 :(得分:1)
为了实现您的目标,您需要管理两组约束。
Any,Any
类的一个集合和Any,Compact
类的另一个集合。
诀窍是确保在该类中专门卸载给定大小类所不需要的约束 - 我将在下面向您展示我的意思。
Any,Any
尺寸中的约束条件为:
标签1
标签2
您的标签1约束应如下所示,您的标签2约束类似:
现在,选择Any,Compact
类并调整两个标签位置并添加以下约束:
标签1
标签2
现在,通过双击约束,单击" +"关闭Any,Compact
中不必要的约束。添加Any,Compact
然后清除复选框,使其如下所示:
Any,Compact
的不必要约束是:
标签1
标签2
现在,返回Any,Any
课程并以同样的方式关闭Any,Any
不必要的约束
Any,Any
的不必要的约束是:
标签1
标签2
现在,您应该可以在Any,Any
和Any, Compact
之间切换,并让标签移到正确的位置。
我已在此处上传了具有相应约束的故事板:https://gist.github.com/paulw11/f1b0faa229b152f1c53dadefcf9e0885
更新:我刚刚注意到您的标签之间的空格不是0,但您可以调整前导/后退&根据需要进行上/下限制。