Xcode 11.5更新后错误。无法用锚激活约束。

问题描述 投票:0回答:1

我刚刚更新到Xcode 11.5,突然我的应用程序出现了这个错误(如下所示)。

我的应用程序有一个TabBar作为基础,并为五个TabBar项目中的每一个提供了不同的视图。所有的视图都能正常工作,除了第3个视图,在点击图标时,我得到了下面的错误信息。

这个视图有一个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.'

现在,我根本没有修改这段代码,在更新发生之前,它一直工作得很好。所以我很困惑如何修复它。

我看到可能有一些标签和视图与它们的约束层次结构冲突,但我似乎想不出是哪些标签和视图,以及如何修复它们。

另外,我的代码中也没有提到 "Day 1",我也没有在程序上添加任何子Views。

目前所做的故障排除

  1. 丢弃所有的代码变化----------。依然如此
  2. 通过时间机器将代码回滚到以前的工作时间--。依然如此
  3. 将Xcode回滚到11.4.x--。依然如此
  4. 调试我的代码,步步为营-- 看来一切正常
  5. 删除了任何标签或附加视图--------。还是会抛出错误
  6. 将约束条件重置为自动约束条件- 依然如此

当前的制约因素 [在丢弃所有代码后,之前的工作]

 label.top = top - 9 
 bottom = label.bottom + 1 
 label.leading = leading + 8 
 label.centerX = centerX

这些是唯一的约束,因为我在tableView下面添加了一个视图,该视图包含了标签。

[这些是自动约束]

感谢任何帮助。先谢谢你了,我刚刚更新到Xcode 11.5,突然我的应用程序出现了这个错误(如下所示)。

ios swift xcode xcode-storyboard xcode11.4
1个回答
0
投票

我设法找出了这个错误--似乎更新翻转了我正在使用的一个自定义类,而这个自定义类又错过了对依赖关系的引用。

在正确地还原自定义类(在故事板中--tableViewCell)后,它成功了。

答案是 此处 是尝试这个解决方案的灵感。

© www.soinside.com 2019 - 2024. All rights reserved.