我创建了一个自定义的UITableViewCell并添加了一些连接到故事板上UI元素的插座字段。请参阅下面的示例。但我总是在行上找到nil指针异常" self.skillBtn.backgroundColor = UIColor.redColor()" in" required init?(coder aDecoder:NSCoder)"方法。这意味着skillBtn尚未初始化。我喜欢在UITableViewCell上进行UI初始化的地方吗?
@IBOutlet weak var backgroundImg: UIImageView!
@IBOutlet weak var userNameLabel: UILabel!
var delegate: UserHomeCategorySelectionDelegate?
@IBOutlet weak var skillBtn: UserHomeCategoryButton!
@IBOutlet weak var speakBtn: UserHomeCategoryButton!
@IBOutlet weak var friendsBtn: UserHomeCategoryButton!
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
self.skillBtn.backgroundColor = UIColor.redColor()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.skillBtn.backgroundColor = UIColor.redColor()
}
答案 0 :(得分:1)
这是因为视图尚未从您的Storyboard / XIB连接到您的类实例
实现您想要的效果,覆盖awakeFromNib 方法并将self.skillBtn.backgroundColor = UIColor.redColor()
放入其中。
从XIB / Storyboard加载视图并连接出口后调用awakeFromNib。