我有一个自定义 UITableViewCell,我想在我的表视图中使用它。这是我的单元格代码:
class ReflectionCell: UITableViewCell {
@IBOutlet weak var header: UILabel!
@IBOutlet weak var content: UILabel!
@IBOutlet weak var author: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
}
init(data: Reflection) {
self.header.text = data.title
self.content.text = data.content
self.author.text = data.author.name
super.init(style: UITableViewCellStyle.default, reuseIdentifier: "reflectionCell")
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
}
我有一个模特班Reflection
我想用它来初始化单元格。但是,在我的视图控制器中我需要使用tableView.dequeueReusableCell(withIdentifier: "reflectionCell", for: indexPath)
。有什么方法可以让我使用像我制作的自定义初始值设定项吗?
如果你使用dequeueReusableCell
您无法更改调用的初始化方法。但是您可以编写自己的方法来更新 IBOutlet,然后在成功使单元出列后调用该方法。
class ReflectionCell: UITableViewCell {
@IBOutlet weak var header: UILabel!
@IBOutlet weak var content: UILabel!
@IBOutlet weak var author: UILabel!
func update(for reflection: Reflection) {
header.text = reflection.title
content.text = reflection.content
author.text = reflection.author.name
}
}
And
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "identifier", for: indexPath) as! ReflectionCell
cell.update(for: reflections[indexPath.row])
return cell
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)