如何在RxSwift中实现UICollectionView页脚



我似乎找不到在UICollectionView中添加页脚视图的方法。我通常使用RxSwift,我尝试了非RxSwi夫特的方式,但仍然没有显示页脚。

我所做的是通过ViewModel获取数据,并将其提供给ViewController中的CollectionView,如下所示:

viewModel.output.data.drive(self.usersCollectionView.rx.items(cellIdentifier: "user", cellType: UserCollectionFooterView.self)) {[weak self] row, data, cell in
guard let self = self else {return }
cell.set(user: data)
}.disposed(by: disposeBag)

我已经创建了一个CCD_ 1类;"剖面页脚";在我的故事板中。我在页脚视图中添加了一个按钮,并将IBOutlet链接到我的UserCollectionFooterView类。

import Foundation
import UIKit
class UserCollectionFooterView : UICollectionReusableView {
@IBOutlet weak var leaveButton: UIButton!
override init(frame: CGRect) {
super.init(frame: frame)
}

required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}

在我的ViewController中,我注册了类:

usersCollectionView.register(UserCollectionFooterView, forSupplementaryViewOfKind: UICollectionView.elementKindSectionFooter, withReuseIdentifier: "UserCollectionFooterView")

我实现了这两个功能:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForFooterInSection section: Int) -> CGSize {
return CGSize(width: usersCollectionView.bounds.width, height: 100)
}
func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
return collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "UserCollectionFooterView", for: indexPath)
}

此外,我的ViewController实现了UICollectionViewDelegate

有人能告诉我我做错了什么吗?我如何使用RxSwift添加footerView?

最佳解决方案是为整个集合视图实现页脚,但由于集合视图中只有一个节,因此它可以是节的页脚视图。

谢谢你的帮助!

尝试设置集合视图布局footerReferenceSize

相关内容

  • 没有找到相关文章

最新更新