我似乎找不到在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。