【问题标题】:What does this error mean after I remove a specific constraint?删除特定约束后,此错误是什么意思?
【发布时间】:2020-08-16 13:28:14
【问题描述】:

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

将自动布局应用于按钮后,通过添加对齐约束,其中“容器中的水平”和“容器中的垂直”都设置为 0 ,并添加另一个宽度和高度都设置为 100 的约束。

在那之后,我删除了“在容器中垂直”约束,只是为了看看会发生什么,我看到了高度错误。当我仅删除显示宽度错误的“容器中的水平”时也是如此。这个错误实际上是什么意思,为什么会这样?

我也从来不理解“垂直在容器中”和“在容器中水平”这两个短语。当我仅应用“在容器中垂直”时,情节提要上会出现一条水平线,这似乎令人困惑,因为您会期望垂直线,因为该短语中包含垂直线。这是为什么呢?

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

我无法发布更多图片,因为我的声望点不超过 10 个。

【问题讨论】:

    标签: ios swift autolayout storyboard ios-autolayout


    【解决方案1】:

    要渲染您的视图(通常是矩形),系统需要知道该视图的宽度和高度。除此之外,它还需要知道您希望将此视图/矩形放置在屏幕上的哪个位置。

    术语“垂直在容器中”意味着系统会将视图定位在屏幕的垂直中心,就像这样 -

    Vertically centered on screen

    术语“水平放置在容器中”意味着系统会将视图定位在屏幕的水平中心,就像这样 -

    Horizontally centered on screen

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

    Horizontally and vertically centered view

    当您删除“在容器中水平”约束时,系统不知道将视图水平放置在哪里,因此您会收到该错误。虽然它有一个宽度,但它会在 X 轴上显示一条红线(不是真正的宽度)。这是您添加水平约束的提示。要解决此问题,您可以 -

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

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

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

    我希望这会有所帮助。

    【讨论】:

    • 很高兴它有帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多