如何为自定义 UITableViewCell class 设置初始化程序?
How do I set an initializer for a custom UITableViewCell class?
我四处寻找这个问题的答案,但每个解决方案都会带来新的编译器错误。
如何为继承自 UITableViewCell 的 class 设置初始值设定项?
这是我目前的情况,如有任何帮助,我们将不胜感激:
SettingCell.swift
class SettingCell: UITableViewCell {
@IBOutlet weak var settingsLabel: UILabel!
@IBOutlet weak var settingsSwitch: UISwitch?
@IBOutlet weak var timeSetting: UILabel?
var cellDelegate: SettingCellDelegate?
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
init(settingLabel: UILabel!, settingSwitch: UISwitch?, timeSetting: UILabel?) {
super.init(style: UITableViewCellStyle, reuseIdentifier: String?)
self.settingsLabel = settingLabel
self.settingsSwitch = settingSwitch
self.timeSetting = timeSetting
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
@IBAction func handledSwitchChange(sender: UISwitch) {
self.cellDelegate?.didChangeSwitchState(sender: self, isOn:settingsSwitch!.on)
}
...
}
修复错误:
编译器错误:
'UITableViewCellStyle.Type' is not convertible to 'UITableViewCellStyle'
当您调用此行时:
super.init(style: UITableViewCellStyle, reuseIdentifier: String?)
您需要提供实际的单元格样式和实际的重用标识符。你现在的代码写得好像这一行是函数定义,而不是函数调用。
将其更改为:
super.init(style: .Default, reuseIdentifier: "SettingCell")
(尽管最好至少重用标识符应该由调用者提供,而不是静态提供)
我四处寻找这个问题的答案,但每个解决方案都会带来新的编译器错误。
如何为继承自 UITableViewCell 的 class 设置初始值设定项?
这是我目前的情况,如有任何帮助,我们将不胜感激:
SettingCell.swift
class SettingCell: UITableViewCell {
@IBOutlet weak var settingsLabel: UILabel!
@IBOutlet weak var settingsSwitch: UISwitch?
@IBOutlet weak var timeSetting: UILabel?
var cellDelegate: SettingCellDelegate?
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
init(settingLabel: UILabel!, settingSwitch: UISwitch?, timeSetting: UILabel?) {
super.init(style: UITableViewCellStyle, reuseIdentifier: String?)
self.settingsLabel = settingLabel
self.settingsSwitch = settingSwitch
self.timeSetting = timeSetting
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
@IBAction func handledSwitchChange(sender: UISwitch) {
self.cellDelegate?.didChangeSwitchState(sender: self, isOn:settingsSwitch!.on)
}
...
}
修复错误:
编译器错误:
'UITableViewCellStyle.Type' is not convertible to 'UITableViewCellStyle'
当您调用此行时:
super.init(style: UITableViewCellStyle, reuseIdentifier: String?)
您需要提供实际的单元格样式和实际的重用标识符。你现在的代码写得好像这一行是函数定义,而不是函数调用。
将其更改为:
super.init(style: .Default, reuseIdentifier: "SettingCell")
(尽管最好至少重用标识符应该由调用者提供,而不是静态提供)