如何修复 Xcode 9 中集合视图元素的 "misplaced views" 警告?

How can I fix the "misplaced views" warning of collection view elements in Xcode 9?

所以我用的是Xcode 9.2,用了一个月我在做项目的时候没有遇到这个问题。今天,我记得我在故事板中将导航栏更改为 "NOT" 半透明。我取消勾选后,出现了这两个警告。

我已经阅读并完成了此处和其他网站中建议的许多解决方案,但它仍然存在。不过,我还没有找到 Xcode 9 上发生的问题的解决方案。如果单击 "fix misplacement",修复 Xcode 给出(我尝试更新约束并重置为建议的约束)什么都不做。

我已经通过故事板设置了高度。
我也通过代码设置了高度,但仍然没有运气。 运行之后app上完全没有问题

我想知道这是不是我在 Xcode 8 和更早版本中看到的错误,或者我不知道 Xcode 9 中有一个简单的修复程序。
我在Xcode 9 没发现有人有这个问题,所以我试一试问问。非常感谢任何帮助。

提前致谢!

这似乎是 Interface Builder 中的错误。一个可能的(虽然不是永久性的)修复是更改用于预览的屏幕尺寸

单击 Interface Builder 底部的 View as: 部分并将设备更改为另一个。之后您可以恢复到原始设备。

我的 Collection View Cell 上不断收到 "misplaced views" 警告。

它说"Expected: width = 0, height = 0"

我通过将它的角拖动到故事板上的大小 0,0 得到了警告消失。我现在看不到单元格,但也没有烦人的警告。

对于任何寻求临时解决方法的人,您可以

  1. Select 有问题的单元格
  2. 打开尺寸检查器(在右侧)
  3. 将下拉列表大小从默认更改为自定义
  4. 将高度或宽度增加/减少 1
  5. 反转 3. 并回到所需的维度

看看上面是否让警告消失

如果上述 none 种解决方案对您不起作用,请尝试以下方法:

  1. 右键单击 .xib 文件 -> 打开为 -> 源代码
  2. CMD + F -> 搜索:misplaced="YES"
  3. 删除任何实例
  4. 右键单击 .xib 文件 -> 打开为 -> Interface Builder
  5. 运行 再次项目并查看警告是否仍然存在

这是 Xcode 13.4 中唯一对我有用的解决方案。

希望这对某人有所帮助!