【问题标题】:How do I reset specific size class data on a storyboard in Xcode6?如何在 Xcode6 的情节提要上重置特定尺寸类数据?
【发布时间】:2014-12-26 14:57:47
【问题描述】:

我正在使用尺寸类来创建一个故事板,它可以针对所有不同的屏幕尺寸和方向。我一直在任何宽度 - 任何高度尺寸类中工作。我遇到了一个显示问题,并决定在 Compact Width - Regular Height 尺寸类中进行这些更改。后来,我能够通过对 Any Width-Any Height 尺寸类进行约束更改来解决我的布局问题。如何还原对 Compact Width - Regular Height 尺寸类所做的更改,以便在运行时使用 Any Width-Any Height 尺寸类,而无需手动还原更改?

【问题讨论】:

    标签: ios xcode autolayout uistoryboard size-classes


    【解决方案1】:

    我遇到了类似的问题,我在错误的尺寸类别中为 iPad 编辑了一些约束(任何宽度 - 常规高度,而不是常规宽度 - 常规高度),最终弄乱了纵向 iPhone 的布局。我最终编辑了Base.lproj/Main.storyboard 并更改了适当的<variation> 条目以将约束移动到适当的大小类(在我的情况下,从<variation key="heightClass=regular" ..><variation key="heightClass=regular-widthClass=regular ...>。必须有更好的方法来做到这一点,但是这个quick hack 在那个场合解决了我的问题。要删除变体,删除相应的变体条目应该可以工作(但请确保您有备份,以防出现问题)。

    【讨论】:

    • 谢谢。我会看看。希望 Apple 实现更好的方法,但现在我只需要一种方法来完成它。
    【解决方案2】:

    XCODE7...

    当我将其切换回“wAny hAny”尺寸时,在常规宽度(而不是“Any”)中添加的图像没有出现,我遇到了类似的问题。

    我在 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>
    

    该部分似乎是指“Any-Any”案例,而 指的是我正在使用的特定尺寸等级(常规宽度,任何高度)。

    为了修复它,我删除了从默认部分中排除的项目,并删除了已添加到常规部分的相同条目。那段代码看起来像......

                         <variation key="default">
                            <mask key="subviews">
    
                            </mask>
                            <mask key="constraints">
                            </mask>
                        </variation>
                        <variation key="widthClass=regular">
                            <mask key="subviews">
    
                            </mask>
    

    似乎可以解决它。怪怪的,嗯?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-31
      • 2021-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多