gpt4 book ai didi

ios - Swift:无法以编程方式配置自定义表格单元格?初始化没有调用?

转载 作者:可可西里 更新时间:2023-11-01 01:32:14 25 4
gpt4 key购买 nike

好吧,我正在尝试以编程方式将内容添加到我的自定义 tableview 单元格中,如 mob 最后一个问题所示 - Swift: tableview cell content is added again and again with each reload?初始化 func tableView() 中的所有内容会导致重叠。

我已经逐字关注了这个问题 Swift. Proper initialization of UITableViewCell hierarchy在我的自定义单元格类(我在 Storyboard 中为其命名)中,我有:

class EventTableCellTableViewCell: UITableViewCell {


override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier) // the common code is executed in this super call
// code unique to CellOne goes here
print("INIT")
self.contentView.backgroundColor = UIColor.blackColor()
}

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}

override func awakeFromNib() {
super.awakeFromNib()
// Initialization code

}

并且这个 init 没有被调用,因为没有打印任何东西。错误出现在我主 VC 中的 func tableView() 中。我原来有:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("eventCell", forIndexPath: indexPath) as! EventTableCellTableViewCell
// cell.eventTitle.text = names[indexPath.row]
// cell.eventDescription.text = descriptions[indexPath.row]

cell.contentView.clipsToBounds = false

//cell UIX
let eventTitleLabel = UILabel()
let dateLabel = UILabel()
let authorLabel = UILabel()
let locationLabel = UILabel()

let categoryView = UIImageView()
//then I add everything

但这没有用,所以我查看了其他帖子,现在有:

 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

//var cell = tableView.dequeueReusableCellWithIdentifier("eventCell", forIndexPath: indexPath) as! EventTableCellTableViewCell

var cell = tableView.dequeueReusableCellWithIdentifier("eventCell", forIndexPath: indexPath) as! UITableViewCell
if (cell == nil) {
cell = EventTableCellTableViewCell.init(style: .Default, reuseIdentifier: "eventCell")
}

我也试过在没有 indexPath 的情况下这样做。现在我得到一个错误,cell cannot == nil,不管我写什么 init 都没有被调用。

如何以编程方式配置我的单元格?

最佳答案

如果单元格是在 Storyboard中设计的,只有 init?(coder aDecoder: NSCoder) 被调用,init(style: style, reuseIdentifier: 永远不会被调用。

并且您必须在 Interface Builder 中将单元格的类设置为 EventTableCellTableViewCell

关于ios - Swift:无法以编程方式配置自定义表格单元格?初始化没有调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39148460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com