【问题标题】:understanding Xcode 7 constraints了解 Xcode 7 约束
【发布时间】:2016-01-14 10:18:24
【问题描述】:

如果可能的话,我想对 TextView 的约束如何工作进行一些说明。

我添加了一个 textView,它位于我的视图上的一个按钮下。有一段时间我无法让它正确显示。

暂时忘记高度和宽度我的印象是,我至少可以通过添加水平约束来使 TextView 居中。情况似乎并非如此。所以我添加了一个限制,让顶部距离它的邻居 30 远。

所以在我的脑海中,TextView 应该以 x 轴为中心,在按钮下方 40 处。再次没有显示任何内容。

现在回到高度和宽度。只有添加这两个约束时,我的 TextView 现在才能正确居中。

问题 1 这是正确的行为以及原因。我似乎能够在不使用高度和宽度限制的情况下显示按钮。

问题 2 不实现 Xcode 提示您执行的所有约束有什么影响。通过我的一些工作,我添加了一些看起来可以正确显示的约束,但 Xcode 仍然需要更多。例如对于一个文本框,如果我在 Xcode 中放置一个水平约束仍然需要 x 位置或宽度约束,即使我的 iPhone 和 iPad 上的文本框大小都很好。

【问题讨论】:

    标签: ios xcode interface-builder constraints xcode7


    【解决方案1】:

    为什么。我似乎能够在不使用高度和宽度限制的情况下显示按钮。

    因为 UIButton 具有 内在 高度和宽度约束。它们的优先级低于您提供的显式高度和宽度约束,但如果您不提供任何约束,则内在约束生效。

    不实现 Xcode 提示您执行的所有约束会有什么影响。

    通常是灾难。如果你没有提供足够的约束,你就会有不明确的约束。你可能得到你希望的结果,但你可能不会。运气好的话,你什么也看不到。不值得冒险。一般来说,相信 Xcode。它比你知道的多。

    【讨论】:

    • 感谢马特,对于问题 2,我明白了,我想这就像使用错误的螺丝将重物固定在墙上一样,它可能会固定,但我可能不明白。但是对于第一点,我仍然对为什么 textView 不会根据我第一次给它的约束居中感到困惑。我原以为它会松散地处于正确的位置,但它甚至不在屏幕上。
    • 要么你有所有需要的约束,要么你可能没有它们。 “甚至不在屏幕上”是 - 这是你的线索,事情并不好。如果你的约束是错误的,当它出现在屏幕上时会更糟,因为你不知道你有问题。这就是我说“灾难”的原因。
    猜你喜欢
    • 1970-01-01
    • 2016-02-09
    • 2013-09-29
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多