NSGenericException原因:无法在视图上安装约束

时间:2018-04-13 00:47:40

标签: constraints swift4

我知道有许多线程具有相同的标题,是的,我读了大部分。他们没有帮助我至少帮助我弄清楚世界上发生了什么!我收到了Crashlytics报道的崩溃事件:

Unable to install constraint on view. Does the constraint reference something from outside the subtree of the view? That's illegal. constraint: <NSLayoutConstraint:0x170497ca0 Hello_World.UIButtonSupport:0x106bf1750’HELLO’.top == Hello_World.UIViewSupport:0x106bf2f00.top (active)> view:<UIView: 0x106bcc820; frame = (0 0; 736 330); autoresize = RM+BM; layer = <CALayer: 0x173e3f360>>

这些崩溃仅在iPhone设备上报告(6S +和7+)。在我们的应用中,Hello_World.UIButtonSupport:0x106bf1750’HELLO’ uninstalledtraits = width:C height:R我认为这是iPhone设备的“肖像”。

我不明白为什么该应用尝试installuninstalled视图的约束?

注意:

  • 没有以编程方式添加或删除约束,我使用traits来处理此
  • 故事板构建器
  • 中添加了所有视图和约束
  • 没有以编程方式删除或添加视图,我使用traitsinstalluninstall次观看。我以为这是在处理 由系统。
  • UIButtonSupportUIViewSupport是自定义视图

1 个答案:

答案 0 :(得分:0)

我真的不明白这个问题,但是当系统安装 Hello_World.UIButtonSupport:0x106bf1750’HELLO’及其约束时,似乎存在竞争条件。如果在视图尚未安装的情况下已安装约束,则应用程序崩溃。

要解决这个问题,我必须将故事板重建为始终安装我们的视图而不管 traits 然后只是操纵视图&#39;满足设计所需的约束。