将委托添加到 IBDesignable class 会导致 UI 不呈现
Adding delegate to IBDesignable class causes UI not to render
我正在开发一个 IBDesignable class,我注意到如果我尝试向 class 添加协议,它会导致错误 "Failed to render and update autolayout status"
如果我去掉协议,它可以正常工作,但是对于我将尝试创建的一些功能,这将非常有用。可用于重现错误的示例代码
import UIKit
protocol TestProtocol {}
@IBDesignable class TestDesignableButton: UIButton {
var delegate: TestProtocol?
}
有谁知道这是什么原因造成的?你知道这个问题是否有解决办法吗?
提前致谢
将您的协议声明更改为:
@objc protocol TestProtocol {}
就是这样,在我的测试中工作(我对你的代码做了一点改动,但改动不大——刚好足以确保我们的骨架正常工作)。请注意,可设计按钮实际上是绿色的;如果 IBDesignable 代码不工作就不会。它也在右边的检查器中显示 "Up to date"。
我正在开发一个 IBDesignable class,我注意到如果我尝试向 class 添加协议,它会导致错误 "Failed to render and update autolayout status"
如果我去掉协议,它可以正常工作,但是对于我将尝试创建的一些功能,这将非常有用。可用于重现错误的示例代码
import UIKit
protocol TestProtocol {}
@IBDesignable class TestDesignableButton: UIButton {
var delegate: TestProtocol?
}
有谁知道这是什么原因造成的?你知道这个问题是否有解决办法吗?
提前致谢
将您的协议声明更改为:
@objc protocol TestProtocol {}
就是这样,在我的测试中工作(我对你的代码做了一点改动,但改动不大——刚好足以确保我们的骨架正常工作)。请注意,可设计按钮实际上是绿色的;如果 IBDesignable 代码不工作就不会。它也在右边的检查器中显示 "Up to date"。