gpt4 book ai didi

ios - 代码中的自动布局约束与 XIB 中的大小冲突

转载 作者:可可西里 更新时间:2023-11-01 06:21:44 24 4
gpt4 key购买 nike

我在 Storyboard的 3 个 subview 中设置了一些 UILabelsUIButtons。在代码中,我已经为所有这些定义了自动布局约束,但是由于某种原因,当我运行应用程序时,我在 Storyboard中定义的尺寸与代码中的约束冲突。

例如,一个 subview 位于 XIB 中的 0,0,高度为 200,宽度为 320,只是为了让我在编写代码之前布局元素。 Storyboard 中没有任何限制。

此 subview 中有许多 UILabel 和 UIButton,它们的累积高度应该定义 subview 的高度。这应该以 205pts 的高度结束,但是日志显示有冲突:

2014-06-02 16:45:38.506 discounter[11691:60b] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSIBPrototypingLayoutConstraint:0x109390160 'IB auto generated at build time for view with fixed frame' V:[UIView:0x109389010(200)]>",
"<NSLayoutConstraint:0x109249510 V:[UIView:0x109389010(205)]>"
)

Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x109249510 V:[UIView:0x109389010(205)]>

我已将所有 View 设置为 translatesAutoresizingMaskIntoConstraints = NO 所以我不知道为什么会这样。它似乎也发生在许多其他元素上,但我有一种感觉,原因可能是相同的。

有人能帮忙吗?

谢谢!

最佳答案

在 Storyboard 中添加您将在代码中替换的约束,并检查它们的“在构建时删除”属性。像这样:

remove at build time checkbox

背景:

这是您向 Xcode promise 您将在代码中添加约束的一种方式,从而防止 Xcode 自动生成必要的约束。自动生成是必要的,否则运行时将无法确定如何呈现有问题的 View 。通常,您应该努力在 Storyboard 中定义所有约束。您还可以 IBOutlet 对代码的约束,然后在应用程序运行时编辑其常量值,这样可以避免在代码中添加约束的繁琐操作。

关于ios - 代码中的自动布局约束与 XIB 中的大小冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23990708/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com