缺失约束自动布局警告

4

我有一个项目,过去我通常使用Xcode界面构建器添加约束。在某些情况下,我需要在控制器源代码中添加一些约束。我的问题是,虽然我得到了我想要的结果,但Xcode会返回缺少约束的警告。

这个警告信息是否需要我处理?也就是说,我在源代码中添加了约束。那么,我是否需要做些什么来更新我的故事板,以便能够知道这些约束条件?

3个回答

4

您不需要处理这些警告,但如果想要摆脱这些警告,可以在IB中添加占位符约束,这些占位符约束在构建时会被删除,所以您可以用代码生成的约束来替换它们。当您选择一个约束并进入属性检查器时,您将看到一个框,“占位符 -- 在构建时删除”。如果您勾选了该框,则这些约束将自动删除。


0
不需要,如果您已在源代码中添加了限制条件,则它们将在运行时执行。因此,只有在您已添加这些约束条件的情况下,才无需处理这些警告。

0

AutoLayout是一种描述性的“语言”,它描述了在运行时应该如何呈现布局(框架大小、间距等)到视图中。当您收到缺少约束警告,换句话说是模糊的布局时,布局很可能会具有不可预测的行为。为了确保您的布局按照您的意愿呈现,您应该清除这些警告。


没有歧义。我有缺失约束的警告,但是它们都在源代码中处理了。如果我能强制Xcode考虑在源代码中创建的约束,那么这种“歧义”就会消失。还有问题吗,或者可能是我不理解的东西? - raistlin
不,你仍然存在歧义,因为界面构建器中的约束和源代码中的约束并不同时应用(考虑UIViewController生命周期)。我的意见是要么在界面构建器中添加缺失的约束,要么将所有约束都添加到源代码中。 - Stavros Schizas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接