我正在使用大小类来创建可以针对所有各种屏幕尺寸和方向的故事板。我一直在Any Width-Any Height size类中工作。我遇到了显示问题并决定在Compact Width - Regular Height size类中进行这些更改。稍后,通过对Any Width-Any Height size类进行约束更改,我能够解决布局问题。如何还原对Compact Width - Regular Height size类所做的更改,以便在运行时使用Any Width-Any Height size类而无需手动还原更改?
答案 0 :(得分:6)
我遇到了类似的问题,我在错误的尺寸类别(任意宽度 - 常规高度而不是常规宽度 - 常规高度)中为iPad编辑了一些约束,最终弄乱了纵向iPhone的布局。我最终编辑了Base.lproj/Main.storyboard
并更改了相应的<variation>
条目,以将约束移动到适当的大小类(在我的情况下,从<variation key="heightClass=regular" ..>
到<variation key="heightClass=regular-widthClass=regular ...>
。必须有更好的方法,但这个快速黑客在那个场合解决了我的问题。要删除变体,删除相应的变体条目应该工作(但确保你有一个备份,以防出现问题)。
答案 1 :(得分:1)
... XCODE7
我在常规宽度(而不是#34;任何&#34;)中添加的图像出现了类似的问题,当我将其切换回&#34; wAny hAny&#34;大小
我在Main.storyboard文件中发现,当被视为代码而非可视化时,该视图的部分如下所示:
<variation key="default">
<mask key="subviews">
<exclude reference="bQ8-Fl-U5l"/>
<exclude reference="eyq-ch-Aan"/>
<exclude reference="pm5-gT-AYv"/>
<exclude reference="LJc-xi-hYb"/>
<exclude reference="y0y-l5-aTs"/>
<exclude reference="cLR-e1-OJo"/>
</mask>
<mask key="constraints">
</mask>
</variation>
<variation key="widthClass=regular">
<mask key="subviews">
<include reference="bQ8-Fl-U5l"/>
<include reference="eyq-ch-Aan"/>
<include reference="pm5-gT-AYv"/>
<include reference="LJc-xi-hYb"/>
<include reference="y0y-l5-aTs"/>
<include reference="cLR-e1-OJo"/>
</mask>
看来该部分是指&#34; Any-Any&#34; case,并且指的是我正在玩的特定尺寸类(正常宽度,任何高度)。
要解决此问题,我删除了默认部分中已排除的项目,并删除了已添加到常规部分的相同条目。那部分代码看起来像......
<variation key="default">
<mask key="subviews">
</mask>
<mask key="constraints">
</mask>
</variation>
<variation key="widthClass=regular">
<mask key="subviews">
</mask>
似乎要解决它。哇,嗯?