当我编写自己的UIButton扩展类并使其@IBDesignable生成时,在Interface Builder中收到两个错误,即:
UIButton
@IBDesignable
这是我的代码:
import UIKit @IBDesignable class RandjeUIButton: UIButton { required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) self.backgroundColor = UIColor.blackColor() } }
我正在OS X 10.11 beta 2上的Xcode 7 beta 2中工作。(在VM中运行)
Xcode的Interface Builder要求您同时实现 两个 初始化器或 不 执行 两个 初始化器,@IBDesignable才能在IB中正确呈现类。
如果实现,则required init(coder aDecoder: NSCoder)还需要重写init(frame: CGRect),否则,如Xcode引发的错误所示,“代理将崩溃”。
required init(coder aDecoder: NSCoder)
init(frame: CGRect)
为此,将以下代码添加到您的类中:
override init(frame: CGRect) { super.init(frame: frame) }