我刚刚更新到 Xcode 11.5,突然我的应用程序抛出了这个错误(如下所列)。
我的应用程序有一个 TabBar 作为基础,并为五个 TabBar 项中的每一个提供不同的视图。所有视图都可以正常工作,除了第三个视图,在单击图标时,我收到以下错误消息。
这个视图有一个 segControl 可以改变 tableView 中的数据。我添加了拉动刷新和搜索功能。当无法提取数据/没有互联网场景时,还会出现一个 UILabel,否则会被隐藏。
错误
Terminating app due to uncaught exception 'NSGenericException', reason: 'Unable to activate constraint with anchors <NSLayoutYAxisAnchor:0x60000064b4c0 "UILabel:0x7fb6dd8b8b80'Day 1'.centerY"> and <NSLayoutYAxisAnchor:0x600000649780 "UIView:0x7fb6dd4b89d0.centerY"> because they have no common ancestor. Does the constraint or its anchors reference items in different view hierarchies? That's illegal.'
现在,我根本没有更改这段代码,并且在更新发生之前它工作得非常好。所以我很困惑如何解决它。
我看到可能有一些标签和视图与它们的约束层次结构冲突,但我似乎无法弄清楚哪些标签和视图以及如何修复它们。
我的代码中也没有任何内容涉及“第 1 天”,并且我没有以编程方式添加任何子视图。
到目前为止已完成故障排除
- 放弃所有代码更改 -仍然是同样的问题
- 通过时间机器将代码回滚到以前的工作时间 -仍然是同样的问题
- 将 Xcode 回滚到 11.4.x -仍然是同样的问题
- 一步一步调试我的代码 -一切似乎都很好
- 删除了任何标签或其他视图 -仍然抛出错误
- 将约束重置为自动约束 -仍然是同样的问题
当前约束[丢弃所有代码后,更早工作]
label.top = top - 9
bottom = label.bottom + 1
label.leading = leading + 8
label.centerX = centerX
这些是唯一的约束,因为我在 tableView 下方添加了一个视图,并且该视图包含标签。
[这些是自动约束]
感谢任何帮助。提前致谢。