【问题标题】:How to change autoresizing for particular controller from Interface Builder?如何从 Interface Builder 更改特定控制器的自动调整大小?
【发布时间】:2014-05-26 19:51:26
【问题描述】:

我发现我的一些视图控制器有

<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>

在我的故事板源代码中。正如我后来发现的那样,这引起了问题。应该是

<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>

但我找不到如何从 Interface Builder 更改它。有人知道 IB 中哪个元素代表autoresizingMask 标签吗?

【问题讨论】:

    标签: ios storyboard interface-builder


    【解决方案1】:

    如果您禁用了自动布局,则它位于大小检查器(右侧窗格中的小标尺图标)下。但是如果你想使用自动布局,你需要修复你的约束,这样它们才能准确地描述你想要的 UI。

    【讨论】:

    • 我一直使用自动布局,它就在那里。我不确定某些控制器如何变得不同autoresizingMask。在 IB 中,我很乐意在不触及 XML 的情况下修复它们。但我看不出 IB 有什么不同,也没有办法解决它。那么问题是可以从 IB 解决这个问题吗?
    • 哦,我可能说错了。即使您使用自动布局,未应用约束的视图仍将使用自动调整大小的掩码。您确定您已为相关视图完全指定了布局约束吗?
    • 我说的视图是VC的根视图。 IB 确实为两个视图显示完全相同的参数 + 我用于内部视图的一些约束。所以在IB中它们是相同的。没有关于非自动布局蒙版的消息。我只是发现他们在调试非常奇怪的问题,这导致我检查 XML 并拉下头发看看它们是不同的。
    • 包含视图的大小不受 xib 中的内容的约束。它只在代码中使用(或嵌入另一个 xib)很重要。
    【解决方案2】:

    在 Interface Builder 中,转到您的故事板并选择 ViewController 的最外层视图(从 Document Outline 中),然后转到 Size Inspector(标尺图标),您可以找到 xml 的那些 autoresizingMask 属性在您的界面生成器中作为Autoresizing

    widhtSizable(水平箭头)和heightSizable(垂直箭头)是最内侧的箭头。

    • 如果arrow is selectedfine line,这意味着在您的XML 文件中该值将是YES
    • 如果arrow is not selected(您可以通过单击取消选择它)将显示more transparentdotted line,这意味着在您的XML 文件中该值将是NO

    查看这个截图,虽然这些线条会一直显示red,但我在截图中用不同的颜色制作了它们,以便您更好地看到水平的是宽度,垂直的是高度。

    同样适用于显示为I|-|outer most lines 以及可通过自动布局自动调整的yx 约束。您可以选择或不选择它们,具体取决于您是否可以自定义。

    【讨论】:

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