我试图在Swift中继承UITableViewCell。
我试过这个:
class CUISwitchTableViewCell: UITableViewCell {
var label = UILabel()
var switchControl = UISwitch()
init(coder aDecoder: NSCoder!) {
super.init(coder: aDecoder)
// Set up UI
}
}
但是在调用super.init(coder: aDecoder)
时出现编译器错误:
必须调用超类的指定初始化程序' UITableViewCell'
所以我理解的是我必须调用init(style: UITableViewCellStyle, reuseIdentifier: String!)
,但之后我将丢失在Interface Builder中进行的所有设置。如果我没有覆盖initWithCoder我应该在哪里设置我的观点?
答案 0 :(得分:8)
如果要设置视图,或对使用界面构建器存档的对象执行任何自定义初始化,可以通过覆盖 awakeFromNib 来实现。使用接口构建器创建的每个对象都将在从Nib取消存档时调用此方法。覆盖此方法还可以保持界面构建器的完整性。