XCode 8 – IB Designables – 呈现和更新自动布局状态失败,代理程序崩溃

我最近升级到Xcode 8,并与故事板有问题。

如果我打开该项目,并且没有打开Storyboard,它将编译并运行得很好。 一旦我打开故事板,就会看到关于IB Designable的多个错误,如下所示。

在这里输入图像说明

这些视图是使用Cocoapods导入的TextFieldEffectsBEMCheckbox中的自定义视图的唯一视图。

您可以尝试以下其中一项来找出原因:

  1. 在此目录中查找IBDesignablesAgentCocoaTouch日志: ~/Library/Logs/DiagnosticReports并查看原因。

  2. 转到编辑器 – >debugging所选视图,同时在故事板中select@IBDesignable UIView ,并查看堆栈跟踪。

尝试为任何xib文件禁用“使用特征变体”(“身份和types”面板),这些xib文件可能用于故事板中使用的自定义视图。

我的问题是通过从派生的数据文件夹删除文件夹(这是与这个项目有关)解决。 您可以通过单击文件 – >项目设置 – >然后单击箭头符号deside /Users/…/Xcode/DerivedData单击DerivedData文件夹,您将看到您的项目命名文件夹删除这些。 退出xcode打开你的项目,使用这个步骤清理项目Product-> clean然后构build项目:Product-> Build这些将解决这个问题。

进行必要的更改后,更改故事板或在我的情况下.xib打开“XCode 7”,保存并closures。 这只是一个解决错误的停止差距措施,但最终你需要修复它们,或者直到你不能再这样做。

在我的情况下,我不得不删除一些@IBInspectable中标记为@IBInspectable的属性。 这解决了这个问题。

当我debugging这个我发现有一些正在修改用户界面的类。 通常是UILabel的子类或者任何其他类在运行时将UIView和ui进行子类化并与Autolayout引擎冲突的marquelabel。 尝试给这些自定义视图固定宽度或高度。 如果不能解决您的问题,请尝试以下解决scheme: –

解决scheme1: – 在您的pod文件中取消注释#use_frameworks。

解决scheme2: – 尝试删除派生的数据

  1. closures编辑器窗口的Xcode并退出模拟器 – >
  2. 转到Xcode首选项 – >位置 – >
  3. 点击显示派生数据path – >的小灰色箭头
  4. select你的项目 – >
  5. 删除里面的所有文件夹 – >
  6. 退出Xcode并重新打开