我有一個自定義的表格視圖單元格,我實際創建。 沒有使用IBOutlets。我應該爲UITableViewCell使用什麼初始值設定項/方法,以編程方式創建所有內容?
我想在界面生成器和代碼中使用它。
我想在界面生成器中爲靜態表格視圖控制器使用它。
在動態表格視圖控制器代碼
我不會使用.xib文件。
閱讀了幾天後,這是我迄今爲止學到的。
// This method will be called when I create the cell programmatically
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
commonInit()
}
// This will be called when a file is loaded from storyboard (or .xib)
// will not use xib only storyboard file (static table view cell)
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
// this will be called after init(coder)
// when all IBOutlets are ready for use
// I'm currently not using this method
// because I don't have any IBOutlets
// Not sure if I should use it
override func awakeFromNib() {
super.awakeFromNib()
}
一切似乎工作正常。
在代碼中使用單元格時,我手動註冊單元格並重新使用它。
這段代碼好嗎? 我似乎無法找到任何明確的解釋,如何一切工作。我閱讀了在網上可以找到的所有內容,但是我一直在尋找不同的觀點和想法。 我想清楚說明何時應使用每種初始化方法。
例如,一些聯機代碼使用awakeFromNib和init(編碼器)方法。他們似乎在這兩種方法中都調用了commonInit()
。 我真的沒有看到任何理由,因爲那些被一個接一個地調用。
IMO,你做得對。 –
我同意Adil。你做得很好。你的想法或你的代碼沒有錯。 – Mozahler
謝謝,這是令人放心的。我還沒有任何問題。 – 3366784