删除特定约束后,此错误意味着什么?

What does this error mean after I remove a specific constraint?

我刚开始学习 swift 所以我的问题对你来说一定很微不足道。

通过添加 "Horizontally in Container" 和 "Vertically in Container" 都设置为 0 的对齐约束,以及添加另一个宽度和高度都设置为 100 的约束,将自动布局应用到按钮后。

在那之后,我删除了 "Vertically in Container" 约束只是为了看看会发生什么,我看到了高度错误。当我仅删除显示宽度错误的 "Horizontally in Container" 时也是如此。此错误的实际含义是什么,为什么会这样显示?

我也从来没听懂过 "Vertically in Container" 和 "Horizontally in Container" 这两个词。当我只应用 "Vertically in Container" 时,故事板上会出现一条水平线,这看起来很混乱,因为你会期望垂直线,因为短语中有垂直线。这是为什么?

Error on height of button after removing "Vertically in Container" constraint

我无法post更多图片,因为我的声望点数不超过 10。

要呈现您的视图(通常为矩形),系统需要知道该视图的宽度和高度。除此之外,它还需要知道你想把这个view/rectangle放在屏幕上的什么位置。

术语"Vertically in container"表示系统会将视图定位在屏幕的垂直中心,就像这样-

Vertically centered on screen

术语"Horizontally in container"表示系统会将视图定位在屏幕的水平中心,就像这样-

Horizontally centered on screen

显然,当设置了这两个约束时,系统会将视图水平和垂直居中定位,就像这样 -

Horizontally and vertically centered view

当您删除 "horizontally in container" 约束时,系统不知道将视图水平放置在何处,因此会出现该错误。尽管它有宽度,但它会在 X 轴上显示一条红线(不是真正的宽度)。这是提示您添加水平约束的提示。要解决此问题,您可以 -

  • 将视图水平居中(您最初所做的)
  • 指定前导和尾随约束
  • 指定左右约束

同样,当你删除"vertically in container"约束时,系统不知道垂直放置视图的位置。要解决这个问题,您可以 -

  • 将视图垂直居中(您最初所做的)
  • 指定顶部和底部约束

希望对您有所帮助。