为什么当我在 Xcode 中设置 "Horizontal centre in container" 时,框架会跳到视图的顶部?

Why does the frame jump to the top of the view as I set "Horizontal centre in container" in Xcode?

我不记得以前发生过这种情况,当时我尝试设置水平居中约束。

它还会发出警告:标签的垂直位置不明确。这是预期的行为吗?设置高度限制并不能解决问题。我是做错了什么还是 Xcode 把我绊倒了?

您没有设置高度限制,要么将其设置为距顶部固定距离,要么将其设置在容器的垂直中心。

是的,这是预期的行为。

为了将您的 UILabel 放在 UIViewController 中,您必须指定垂直和水平位置。这样 AutoLayout 就不会 return 任何错误。

您只指定了 x 轴位置(也称为水平位置)。您可能还想设置 垂直位置

您可以通过两种方式设置垂直位置:

  1. 通过选择 Center Vertically In Container 使 UILabel 垂直居中;

  2. 或创建Top Space to Top Layout GuideBottom Space to Bottom Layout Guide约束。