【发布时间】:2023-03-07 17:56:02
【问题描述】:
我有一个包含 UICollectionView 的自定义控件。这个自定义控件有自己的视图模型。我正在使用 RXswift 进行 MVVM 设计。
视图模型类如下所示
class CalendarViewModel {
public var calendarNDays = PublishSubject<[CalendarControlDayModel]>()
struct CalendarControlDayModel {
var date: String = ""
var day: Int = 0
var name: String = ""
}
}
自定义控件称为 calendarView,我在其中创建上述视图模型的实例并设置绑定以在集合视图中填充数据。
在自定义控件中设置绑定的方法如下。
func setUpBinding() {
calendarViewModel.calendarNDays.bind(to: collectionView.rx.items(cellIdentifier: cellReuseIdentifier, cellType: CalendarViewCell.self)) { (row,calendarDay,cell) in
cell.calendarDay = calendarDay
}.disposed(by: disposeBag)
}
但我收到上述方法的编译错误,显示为“items”生成“(Source) -> Disposable”,而不是预期的上下文结果类型“(_) -> _”
如果我在自定义控件中将 calendarNDays 定义为 publishSubject,它不会抱怨。关于这里有什么问题的任何提示。我想使用视图模型中定义的属性设置绑定,以显示集合视图项并符合 MVVM 设计模式。
【问题讨论】:
-
顺便说一句
calendarNDays应该是let而不是var。 -
改为让。