我创建了一个自定义UITableViewCell并添加了一些插座字段,这些插座字段连接到情节提要上的UI元素。请参阅以下示例。但是我总是在“ required init?(coder aDecoder:NSCoder)”方法的“ self.skillBtn.backgroundColor = UIColor.redColor()”行上得到零指针异常。这意味着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()

}

最佳答案

那是因为视图尚未从Storyboard / XIB连接到类实例,

要实现所需的功能,请覆盖awakeFromNib方法并将self.skillBtn.backgroundColor = UIColor.redColor()放在其中。

从XIB / Storyboard加载视图并连接插座后,将调用awakeFromNib。

关于ios - 如何初始化与UI相关的自定义UITableViewCell属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35844476/

10-10 11:31