代码之家  ›  专栏  ›  技术社区  ›  John

为什么自动布局约束不会在运行时出现?

  •  10
  • John  · 技术社区  · 7 年前

    UITableViewCell 它在图像的右侧显示一个图像和几个标签。我有我的 UIImageView UILabels 排列在堆栈视图中,最外层固定在内容视图的所有四个侧面。 Screenshot of storyboard Screenshot of constraints

    但是当我在模拟器中运行应用程序时,我看不到图像视图。在调试视图层次结构时,我看到它们正在被剪裁。 Screenshot of view hierarchy

    Screenshot of view hierarchy focused on stack view

    estimatedRowHeight rowHeight UITableViewAutomaticDimension ,因此我认为如果这些约束有效,表中的行大小将适合内容。可能值得注意的是,我添加的任何宽度或高度自动布局约束在调试视图层次结构时都会出现,因此我知道在运行时会出现一些约束,但我一辈子都无法理解为什么相对于内容视图的约束不存在。

    2 回复  |  直到 7 年前
        1
  •  3
  •   John    7 年前

    在与之斗争了很长一段时间后,让一位更有经验的开发人员检查了我的项目,似乎它的设置方式没有任何问题。用完全相同的布局和约束从头开始重新创建表视图单元格,并使用完全相同的代码修复了此问题。在这之前,我把堆栈视图和约束弄得一团糟,所以当你在模拟器中运行应用程序时,可能会把Xcode弄到一个不能正确设置约束的地方。

        2
  •  2
  •   Dhaval Dobariya    7 年前

    运行应用程序并查看此屏幕时,请尝试解决打印到控制台日志中的所有警告。因为您不能总是忽略警告,所以必须通过纠正或解决约束中的问题来删除许多警告。这是在大多数情况下对你有帮助的唯一解决方案。