【问题标题】:Xcode 10.1 - IB Designables - Failed to render and update auto layout status, The agent crashedXcode 10.1 - IB Designables - 无法渲染和更新自动布局状态,代理崩溃
【发布时间】:2020-04-18 23:37:59
【问题描述】:

我的故事板无法呈现布局,因此我无法添加约束,也无法看到我的 viewController 的布局。

我该如何解决这个问题?

【问题讨论】:

  • 这种事情通常可以通过重启 Xcode 和/或你的 Mac 来解决。这将重新启动代理并允许它再次开始呈现您的 UI。你已经试过了吗?
  • @siburb 是的,我尝试了很多次重新启动和删除派生数据文件夹

标签: ios xcode


【解决方案1】:

我也面临同样的问题...已解决

Editor -> Refresh All Views

【讨论】:

    【解决方案2】:

    我花了几个小时来解决这个问题,但所有的答案都没有帮助我。终于发现自己的错误了。

    在@IBInspectable didSet 属性中,我调用了常用的 setup() 函数来利用我的视图。但是,我试图在不检查它是否为 nil 的情况下调整 textField。这就是为什么我遇到“渲染失败”问题以及运行时崩溃的原因?

    例如:

    @IBInspectable var isTitleEnabled: Bool = true{
        didSet{ setup() }
    }
    

    setup() 函数是:

    private func setup(){
        textField.isSecureTextEntry = isPassword
    }
    

    这是错误的。 Xcode 不允许以这种方式修改子视图。 当 IB 组件被渲染时,Xcode 认为它还没有被初始化,所以它会引发一个错误。为了解决这个误解,我们需要确保 IB 组件不是 nil。

    所以,我们需要这样使用它:

    guard textField != nil else { return }
    textField.isSecureTextEntry = isPassword ? true : false
    

    IB 组件不仅仅需要是一个 UITextField。它适用于其他 IB 组件,如 UILabel、UIImageView 等。

    【讨论】:

    • 您可以将解决方案代码简化为 textfield?.isSecureTextEntry = isPassword ? true : false。
    【解决方案3】:

    请参阅此答案https://stackoverflow.com/a/52790289/8276509 或 只需尝试转到 Editor,然后在您的 Storyboard 选择中Refesh All View

    【讨论】:

      猜你喜欢
      • 2017-02-05
      • 2020-06-29
      • 2018-03-25
      • 2018-05-11
      • 1970-01-01
      • 2019-11-17
      • 2015-02-07
      • 1970-01-01
      相关资源
      最近更新 更多