将委托添加到IBDesignable类会导致UI无法呈现

时间:2017-10-02 12:33:15

标签: swift ibdesignable

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

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

import UIKit

protocol TestProtocol {}

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

有谁知道是什么原因造成的?你知道是否有办法解决这个问题?

提前致谢

1 个答案:

答案 0 :(得分:2)

将您的协议声明更改为:

@objc protocol TestProtocol {}

就是这样,在我的测试中工作(我改变了你的代码,但不是很多 - 只要确保我们的骨骼正常工作)。请注意,可设计的按钮实际上是绿色的;如果IBDesignable代码不起作用则不会。它也说"最新"在右边的检查员。

enter image description here