Xcode 6:有没有简单的方法来复制大小类之间的约束?

时间:2014-09-07 02:31:13

标签: class autolayout ios8 xcode6

我在wAny hAny尺寸等级中设置约束,并且它适用于iPhone& iPad模拟器。

wAny hAny

然后我切换到wAny hCompact size class并进行了一些更改

wAny hCompact

它在iPhone横向模式下看起来很不错,但在iPad上没有任何改变,因为iPad是wRegular hRegular。我尝试将这些约束应用于wRegular hAny size class,但找不到快速的方法。再次手动修改所有约束是没有意义的。 我发现如果我在Inspector面板中双击约束,则可以选择将约束安装到其他大小的类。但这仅适用于单一约束......

inspector

那么,是否可以将所有约束从一个大小类应用到另一个大小类?

4 个答案:

答案 0 :(得分:11)

我认为即使Hannes的回答被接受,我也会发布这个帖子,因为它可能对某些人有用。您可以通过直接编辑源代码来批量更新约束的大小类。编辑IB生成的XML通常是一个坏主意,但我使用旧的查找和替换执行了更新,这为我节省了很多时间。

明显的免责声明 备份文件以防出现可怕的错误 ......

查找以下节点:

<variation key="heightClass=(Size Class)-widthClass=(Size Class)">

在我的情况下,我想将我的所有'紧凑宽度/紧凑高度'约束移植到'任意宽度/紧凑高度',并且能够实现此目的使用空字符串查找/替换' -widthClass = compact '以将' heightClass = compact-widthClass = compact '更改为“ heightClass = compact ”。

要获取源代码视图,请右键单击xcode中的storyboard文件,然后选择“打开为&gt;源代码'

在这个实例中非常简单,比在IB中更容易,因为我有很多限制要更新。

答案 1 :(得分:2)

在左侧面板中选择约束。(选择所有约束)。然后点击右侧面板上的“属性检查器”。然后添加要添加的类,就像添加UI元素一样。

Ref Image

答案 2 :(得分:0)

不,你不能一起编辑所有约束。

但是对于每个人,只需点击Installed前面的加号按钮,然后添加wAny hAny并选择它。然后,您的约束将适用于所有大小类。您可以添加更多选项,从而确定何时适用约束。

答案 3 :(得分:0)

查找并替换故事板代码: 我这样做是为了从compact-regular迁移到any / any。适合我。 Find - heightClass = regular-widthClass = compact 替换 - 默认

对于其他尺寸的clasees适当地找到大小字符串并调整大小。 奖励!!

最后更新约束。其他一切都不会像预期的那样。