【问题标题】:Start Developing iOS Apps (Swift): Problems with Implement a Custom Control开始开发 iOS 应用程序 (Swift):实现自定义控件的问题
【发布时间】:2017-02-05 18:57:24
【问题描述】:

我在开始开发 iOS 应用程序 (Swift) 中的 FoodTracker 示例方面取得了不错的进展,但在 Implement a Custom Control 中遇到了障碍:

2017-02-05 18:45:01.644693 FoodTracker[3066:188362] [LayoutConstraints] 无法同时满足约束。 以下列表中的至少一个约束可能是一个 你不想要。试试这个:(1)查看每个约束并尝试 找出你没想到的; (2) 找到添加的代码 不需要的约束或约束并修复它。 ( "", "", "", "")

将尝试通过打破约束来恢复 (主动)>

在 UIViewAlertForUnsatisfiableConstraints 创建一个符号断点 在调试器中捕获它。中的方法 UIView 上的 UIConstraintBasedLayoutDebugging 类别列于 也可能有帮助。 2017-02-05 18:45:01.645167 FoodTracker[3066:188362] [LayoutConstraints] 无法同时 满足约束。可能至少有一个约束条件 以下列表是您不想要的。试试这个:(1)看每个 约束并尝试找出您不期望的; (2) 找到 添加不需要的约束或约束的代码并修复它。 ( "", " (主动)>", "", "")

将尝试通过打破约束来恢复 (主动)>

在 UIViewAlertForUnsatisfiableConstraints 创建一个符号断点 在调试器中捕获它。中的方法 UIView 上的 UIConstraintBasedLayoutDebugging 类别列于 也可能有帮助。

整个水平视图不是一个 44px x 44px 大小的红色正方形,而是红色。

我已经多次完成这些步骤,复制并粘贴了代码示例,但每次都遇到相同的错误。

我在 OS X El Capitan 10.11.6 上使用 Xcode 8.2.1

【问题讨论】:

  • 错误显示的描述对您很有帮助,我马上注意到“无法同时满足约束” - 这通常意味着您正试图以一种不可能的方式锚定约束。请显示您的布局代码,以便我们帮助找出问题
  • 另外,发布 full 布局警告/错误。他们倾向于直接指出问题。 (是的,它非常丑陋,但这就是它的本质。)
  • @Pierce,指南中没有关于约束的说明,因为我是新手,所以我不明白该怎么做。另外,我使用的代码在Add Buttons to the View
  • 错误描述为“无法同时满足约束”。这通常意味着您创建了两个或多个不能在同一点存在的约束(例如,您为控件设置了“宽度”约束,并将宽度设置为等于父视图的宽度 - 这实际上是当我第一次遇到此错误时,我发生了什么事)。
  • @dfd,我在哪里可以找到这些额外的警告或错误?

标签: ios swift xcode8


【解决方案1】:

水平堆栈视图需要位于另一个堆栈视图内。通过将水平堆栈视图与其他堆栈视图分开(& 下方),我能够重现此问题。我能够通过拖动水平堆栈视图(评级控件)来解决问题,使其位于另一个堆栈视图中。

【讨论】:

    【解决方案2】:

    重置情节提要中的约束(通过单击右下角的“解决布局问题”)并重新添加它们,这应该清除情节提要中任何冲突的约束,从而修复错误

    【讨论】:

    • 我已经尝试了两种“重置为建议的约束”,但都不起作用。
    【解决方案3】:

    在您的故事板中,使用对象库找到一个水平堆栈 查看对象,然后将一个对象拖入情节提要场景中,使其位于 图像视图下方的堆栈视图。

    下面是水平堆栈视图对象的图像,我将其视为将其放置在情节提要本身的照片图像视图对象下方。

    正如我所说,我是新手!

    各位,谢谢你们的帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-02
      • 1970-01-01
      相关资源
      最近更新 更多