【问题标题】:Adding delegate to IBDesignable class causes UI not to render将委托添加到 IBDesignable 类会导致 UI 不呈现
【发布时间】:2023-03-31 11:27:02
【问题描述】:

我正在处理一个 IBDesignable 类,我注意到如果我尝试向该类添加协议,则会导致错误“无法呈现和更新自动布局状态”

如果我取出协议,它可以正常工作,但是对于我将尝试创建的一些功能,这将非常有用。可用于重现错误的示例代码

import UIKit

protocol TestProtocol {}

@IBDesignable class TestDesignableButton: UIButton {        
    var delegate: TestProtocol?
}

有人知道这是什么原因吗?你知道有没有办法解决这个问题?

提前致谢

【问题讨论】:

  • 这是IBDesignables 经常出现的错误。由于它们的错误,我只是避免使用它们。
  • 有没有办法抑制错误? IBDesignable 类仍然使用适当的委托方法。我可以运行该应用程序,它看起来很好,只是当我添加委托时 UI 元素没有正确显示在情节提要中

标签: swift ibdesignable


【解决方案1】:

将您的协议声明更改为:

@objc protocol TestProtocol {}

就是这样,在我的测试中工作(我对你的代码做了一点改动,但不多——只要确保我们的基本框架正常工作就足够了)。请注意,可设计按钮实际上是绿色的;如果 IBDesignable 代码不起作用,则不会。它还在右侧的检查器中显示“最新”。

【讨论】:

  • 太棒了,如此简单的修复。为您的帮助干杯!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多