RxSwift 不将数据绑定到自定义集合视图单元格

Posted

技术标签:

【中文标题】RxSwift 不将数据绑定到自定义集合视图单元格【英文标题】:RxSwift do not bind data to custom collection view cell 【发布时间】:2019-07-28 11:22:36 【问题描述】:

我创建了自定义 collectionViewCell 以将数据从可观察对象绑定到自定义 CollectionViewCell。我成功地将数据绑定到自定义 TableViewCell,但无法将数据内容显示到自定义集合视图单元格。 Rx 与自定义集合视图数据源绑定是否存在问题?

这是我的自定义集合视图单元格:

class MovieItemCollectionViewCell: UICollectionViewCell 
    @IBOutlet weak var titleLabel: UILabel!

    override func awakeFromNib() 
        super.awakeFromNib()
    

    func bind(_ viewModel: MovieItemViewModel) 
        debugPrint("bind")
        titleLabel.text = viewModel.title
    

这是我的绑定方式:(以下代码完全适用于 tableViewCell,但不适用于 collectionViewCell。顺便说一句,调试器不会进入 collectionViewCell 中的绑定方法)

output.movies.drive(
    topRatedMoviesCollectionView
    .rx.items(cellIdentifier: MovieItemCollectionViewCell.reuseID,
                    cellType: MovieItemCollectionViewCell.self)) _, viewModel, cell in
                        cell.bind(viewModel)
.disposed(by: disposeBag)

【问题讨论】:

【参考方案1】:

您发布的代码很好,与您遇到的问题无关。

如果“调试器没有进入 collectionViewCell 中的绑定方法”,那么您的 movies observable 可能从未发出任何值。

【讨论】:

是的,你是对的。我已经用工作响应尝试了 tableView。集合视图的数据源不发出任何内容。我用 other 更改了另一个数据源,它立即绑定了数据。非常感谢。

以上是关于RxSwift 不将数据绑定到自定义集合视图单元格的主要内容,如果未能解决你的问题,请参考以下文章

使用 RxSwift 的 UICollectionView 数据绑定 - iOS

添加和布局从 xib 加载的子视图到自定义单元格

RxSwift MVVM 表视图/集合视图,用户输入单元表示状态

按顺序将音频文件数组加载到集合视图单元格

如何在swift ios中将多个图像添加到自定义表格视图单元格?

RxSwift:如何通过多个视图模型传递控制事件