趣玩界面展示
展示效果
- 效果展示
- 效果分析
- 該界面就是一個UICollectionView,並且使用CollectionNormalCell展示內容即可
- 因爲之前已經抽取了BaseAnchorViewController,所有集成自即可擁有UICollectionView
- 之後,請求對應數據,在家對應數據即可
界面佈局
- 繼承自BaseAnchorViewController
- 重寫setupUI方法,設置佈局
- 因爲該UICollectionView不需要headerView,所有需要重新設置佈局
- 另外,可以給UICollectionView添加一個頂部內邊距(有距離會好看點)
class FunnyViewController: BaseAnchorViewController {
}
// MARK:- 設置UI界面的內容
extension FunnyViewController {
override func setupUI() {
super.setupUI()
let layout = collectionView.collectionViewLayout as! UICollectionViewFlowLayout
layout.headerReferenceSize = CGSize.zero
collectionView.contentInset = UIEdgeInsets(top: 8, left: 0, bottom: 0, right: 0)
}
}
請求展示數據
class FunnyViewModel: BaseViewModel {
}
extension FunnyViewModel {
func loadFunnyData(finishedCallback : @escaping () -> ()) {
loadAnchorData(isGroupData: false, URLString: "http://capi.douyucdn.cn/api/v1/getColumnRoom/3", parameters: ["limit" : 0, "offset" : 0], finishedCallback: finishedCallback)
}
}
// MARK:- 請求數據
extension FunnyViewController {
override func loadData() {
baseVM = funnyVM
funnyVM.loadFunnyData {
self.collectionView.reloadData()
}
}
}
總結:
- 我們發現做了父類抽取後,如果再實現類似的界面非常簡單
來源:http://bbs.520it.com/forum.php?mod=viewthread&tid=2521