如何初始化自定义的UITableViewCell ui相关属性

时间:2016-03-07 13:02:19

标签: ios swift uitableview

我创建了一个自定义的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()

}

1 个答案:

答案 0 :(得分:1)

这是因为视图尚未从您的Storyboard / XIB连接到您的类实例

实现您想要的效果,覆盖awakeFromNib 方法并将self.skillBtn.backgroundColor = UIColor.redColor()放入其中。

从XIB / Storyboard加载视图并连接出口后调用awakeFromNib。