如何使用 UIListContentConfiguration 设置自定义创建的单元格的属性?

问题描述 投票:0回答:1

我创建了一个自定义单元格,该自定义单元格的文件是 .xib 文件(称为 MessageCell.xib)。 .xib 文件与 .swift 文件关联,我可以在其中输入代码,并且在该文件中我有一些 IBOutlet 属性。我想要做的是使用 UIListContentConfiguration 设置这些属性,但我不知道如何执行或是否可以设置。下图中我已经为 iOS 14 及更高版本实现了这一点,对于旧版本我遵循传统方式。为旧版本编写的代码没有任何问题,但我为 iOS 14 编写的代码不起作用/出现错误。

这是我特制的细胞。

class MessageCell: UITableViewCell {

    @IBOutlet weak var rightImageView: UIImageView!
    @IBOutlet weak var leftImageView: UIImageView!
    @IBOutlet weak var label: UILabel!
    @IBOutlet weak var messageBubble: UIView!

    override func awakeFromNib() {
        super.awakeFromNib()
        messageBubble.layer.cornerRadius = messageBubble.frame.height / 5
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
        // Configure the view for the selected state
    }
    
}

在这里,我将消息数组中的字符串表达式分配给单元格中的标签属性。

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: K.cellIdentifier, for: indexPath) as! MessageCell
        if #available(iOS 14.0, *)
        {
            var config = cell.defaultContentConfiguration()
            config.text = messages[indexPath.row].body
            cell.contentConfiguration = config
        }
        cell.label.text = messages[indexPath.row].body
        return cell
    }

我通过反复试验实现了该结构的许多功能,但我无法实现我的目标。

ios swift uikit
1个回答
0
投票

您不能为此使用 UIListContentConfiguration,因为您尝试在单元格中配置的界面元素不是内置的图像和标题视图。您必须编写自定义的 UIContentConfiguration 和 UIContentView,通过自己配置相应的界面元素来在代码中响应配置的属性设置。

© www.soinside.com 2019 - 2024. All rights reserved.