自定义 UITableViewCell 不显示标签

Posted

技术标签:

【中文标题】自定义 UITableViewCell 不显示标签【英文标题】:Custom UITableViewCell not showing labels 【发布时间】:2017-11-03 12:14:28 【问题描述】:

我在 Xcode 中创建了自定义单元格视图:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! FeedCell

        let iniStr = self.tableArray[indexPath.row]

        let fullNameArr = iniStr.components(separatedBy: "||1||")
        let daFirst = fullNameArr[0]
        let daSecond = fullNameArr[1]

        let finalco = daSecond.components(separatedBy: "||2||")
        let fString = finalco[0]

        cell.questionLabel?.text = daFirst
        cell.answerLabel?.text = daSecond

        return cell
    

class FeedCell: UITableViewCell 

    @IBOutlet weak var questionLabel: UILabel!
    @IBOutlet weak var answerLabel: UILabel!


然后连接故事板中的所有内容,设置约束和注册类:self.tableView.register(FeedCell.self, forCellReuseIdentifier: "Cell")

当我使用 Subtitle 作为自定义表格单元格的类时,一切正常,但是当我在表格单元格中使用自定义 FeedCell 时,标签没有显示,但我可以选择单元格。

【问题讨论】:

您是否为FeedCell 创建了单独的xib 文件?由于您在问题中提到了故事板,我猜测单元格的 UI 直接放置在您的控制器中。在这种情况下,您无需致电self.tableView.register @ØyvindHauge 不,我不是被创造出来的,我什至不知道该怎么做。 检查是否已向 UITableViewDataSource 确认,然后检查 numberOfRowsInSection 是否返回正确的行数 self.tableView.delegate = self / self.tableView.dataSource = self 和 numberOfRowsInSection 返回正确的数字 在 cellforRow 中使用断点来验证索引处 self.tableArray 的值,或者只是尝试使用虚拟值来检查它是否为单元格正确设置了值 【参考方案1】:

试试这段代码来调试连接

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! FeedCell

        let iniStr = self.tableArray[indexPath.row]
        print(iniStr)

        let fullNameArr = iniStr.components(separatedBy: "||1||")
        let daFirst = fullNameArr[0]
        let daSecond = fullNameArr[1]
        print(daFirst)
        print(daSecond)

        let finalco = daSecond.components(separatedBy: "||2||")
        let fString = finalco[0]

        cell.questionLabel?.text = daFirst
        cell.answerLabel?.text = daSecond

        cell.questionLabel.backgroundColor = .red
        cell.answerLabel.backgroundColor = .green




        return cell

    

【讨论】:

什么是 自定义单元格的xib名称。 OP 提到他已经“钩住情节提要中的所有内容”,这意味着他没有为他的自定义单元格使用单独的布局文件。因此,不需要register 现在我既没有使用 xib 也没有使用寄存器,但标签仍然没有显示 哦。我的错。 !! @MrJo 然后确保您在情节提要中为单元格提供了 cellIdentifier。这也会导致问题。

以上是关于自定义 UITableViewCell 不显示标签的主要内容,如果未能解决你的问题,请参考以下文章

自定义 UITableViewCell 标签消失

自定义 uitableviewcell 中的动态标签数

自定义 UITableViewCell 显示不正确的值

实现 willTransitionToState: 时自定义 UITableViewCell 不显示编辑控件

自定义 UITableViewCell 中的 PFImageView 使用 contentMode“AspectFill”显示不正确

自定义 UITableviewCell 中的多行标签