【发布时间】:2020-04-01 02:55:05
【问题描述】:
【问题讨论】:
标签: ios xcode interface-builder xib
【问题讨论】:
标签: ios xcode interface-builder xib
对我来说,在 macOS 10.15.6、XCode 12.4 上,发生这种情况是因为我复制了一个 NSViewController 根视图并尝试将其修改为子视图。似乎它还复制了一些隐藏的“不能被约束”参数。
所以,不要做我做过的事。
【讨论】:
我遇到了这个问题,我刚刚弄清楚是什么原因造成的。
当我向视图控制器 XIB 添加新按钮时,我将按钮添加到 XIB 旁边的空白处,然后将按钮拖到左侧文档大纲中的视图下。如果您这样做,出于某种原因,它不允许您按住 Ctrl 键并拖动到视图以添加约束。
如果您添加一个新按钮并立即将其拖到视图中,它应该允许您按住 Ctrl 键并拖动约束。
【讨论】:
还请注意 Size Inspector 中的 Layout 参数。 xib 中的每个组件都有 2 种值:Inferred (Constraints) 和 Autosizing Mask。
如果选择 Inferred (Constraints),则视图将添加到父视图,而没有自动调整大小的约束。这意味着无论您为此视图设置什么自动调整大小,添加到父视图时都没有影响。其实就是把“translatesAutoresizingMaskIntoConstraints”属性设置为false是一样的。
相比之下,如果选择了 Autosizing Mask,您在视图中定义的视图的自动调整大小参数将在添加到父视图时应用。如果您在 xib 中使用自动调整大小,则应该选择它。
【讨论】: