Commit 4b35123b7c25aafa52c06999fa1b7657077dc74a

Authored by liushiyu
1 parent 280cce7f

视频列表没有加载功能

metaCode/Classes/Main/VideoPage/Controller/CNLiveShortVideoViewController.swift
... ... @@ -380,7 +380,7 @@ extension CNLiveShortVideoViewController {
380 380 }
381 381 }
382 382 func listActionMethod(viewcell: CNLiveShortVideoListTableViewCell, button: UIButton) {
383   - CNLiveShortVideoContentListView.showVideoContentListView(title: viewcell.homeModel.albumMsgModel!.albumName,dataArray: dataArray, episodeNow: viewcell.homeModel.albumMsgModel!.episodeNow, result: {[weak self] listModel in
  383 + CNLiveShortVideoContentListView.showVideoContentListView(aid: viewcell.homeModel.albumMsgModel!.albumId,title: viewcell.homeModel.albumMsgModel!.albumName,dataArray: dataArray, episodeNow: viewcell.homeModel.albumMsgModel!.episodeNow, result: {[weak self] listModel in
384 384 guard let self = self else { return }
385 385 let index = self.dataArray.index(of: listModel) as NSInteger
386 386 self.playTheIndex(index: index)
... ...
metaCode/Classes/Main/VideoPage/View/CNLiveShortVideoContentListView.swift
... ... @@ -6,9 +6,12 @@
6 6 //
7 7  
8 8 import Foundation
  9 +import MJRefresh
  10 +import EmptyDataSet_Swift
9 11  
10 12 typealias CloseVideoListResultBlock = (_ listModel: Any) ->Void
11   -class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewDataSource {
  13 +typealias ReloadVideoListResultBlock = (_ dataArray: NSMutableArray) ->Void
  14 +class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewDataSource, EmptyDataSetSource, EmptyDataSetDelegate {
12 15  
13 16 lazy var grayMaskView: UIView = {
14 17 let grayMaskView = UIView()
... ... @@ -51,6 +54,8 @@ class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewD
51 54 let tableView = UITableView(frame: .zero, style: .plain)
52 55 tableView.dataSource = self
53 56 tableView.delegate = self
  57 + tableView.emptyDataSetDelegate = self
  58 + tableView.emptyDataSetSource = self
54 59 tableView.rowHeight = 90
55 60 tableView.estimatedRowHeight = 90
56 61 tableView.estimatedSectionFooterHeight = 0
... ... @@ -70,7 +75,11 @@ class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewD
70 75 return array
71 76 }()
72 77  
  78 + var aid: String! = ""
  79 + var pageNum: NSInteger! = 1
  80 + var footerRefreshView: CNLiveFooterRefresh!
73 81 var resultBlock: CloseVideoListResultBlock!
  82 + var reloadBlock: ReloadVideoListResultBlock!
74 83  
75 84 override init(frame: CGRect) {
76 85 super.init(frame: frame)
... ... @@ -109,14 +118,62 @@ class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewD
109 118 make.bottom.left.right.equalToSuperview()
110 119 make.top.equalTo(lineLabel.snp.bottom).offset(10)
111 120 }
  121 +
  122 + addRefreshView()
  123 + }
  124 +
  125 + func addRefreshView() {
  126 + footerRefreshView = CNLiveFooterRefresh(refreshingBlock: { [weak self] in
  127 + guard let self = self else { return }
  128 + self.pageNum += 1
  129 + self.requestData()
  130 + })
  131 + footerRefreshView.stateLabel!.textColor = .white
  132 + footerRefreshView.loadingView?.color = .white
  133 + self.tableView.mj_footer = footerRefreshView
112 134 }
113 135  
114 136 func setupWithDataSource(title: String,dataArray: NSMutableArray,episodeNow: String) {
115 137 dataSource = dataArray
  138 + if Int(episodeNow) == dataArray.count {
  139 + self.tableView.mj_footer?.endRefreshingWithNoMoreData()
  140 + } else {
  141 + self.pageNum = dataArray.count / 10
  142 + }
116 143 titleLabel.text = "\(title)·\(episodeNow)集"
117 144 self.tableView.reloadData()
118 145 }
119 146  
  147 + func requestData() {
  148 + CNLiveShortVideoViewModel.requstWithShortVideo(aid: self.aid, page: self.pageNum) { [weak self] result, respStatue in
  149 + guard let self = self else { return }
  150 + if respStatue == .success {
  151 + let listArray = (result as! [Any]).first as! [CNLiveAlbumListModel]
  152 + self.dataSource.addObjects(from: listArray)
  153 + if self.tableView.mj_footer != nil {
  154 + self.tableView.mj_footer?.endRefreshing()
  155 + }
  156 + self.tableView.reloadData()
  157 + let hasNextPage = (result as! [Any])[1] as! Bool
  158 + if listArray.count == 0 {
  159 + if !hasNextPage {
  160 + self.tableView.mj_footer?.endRefreshingWithNoMoreData()
  161 + self.tableView.reloadData()
  162 + }
  163 + }
  164 + } else {
  165 + if self.tableView.mj_footer != nil {
  166 + self.tableView.mj_footer?.endRefreshing()
  167 + }
  168 + self.tableView.contentOffset = CGPoint.zero
  169 + self.tableView.refreshControl?.endRefreshing()
  170 + if self.dataSource.count == 0 {
  171 + self.tableView.reloadEmptyDataSet()
  172 + }
  173 + }
  174 + }
  175 + }
  176 +
120 177 required init?(coder: NSCoder) {
121 178 fatalError("init(coder:) has not been implemented")
122 179 }
... ... @@ -129,9 +186,10 @@ class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewD
129 186 removeFromSuperview()
130 187 }
131 188  
132   - static public func showVideoContentListView(title: String,dataArray: NSMutableArray,episodeNow: String ,result: @escaping CloseVideoListResultBlock) {
  189 + static public func showVideoContentListView(aid: String,title: String,dataArray: NSMutableArray,episodeNow: String ,result: @escaping CloseVideoListResultBlock) {
133 190  
134 191 let pickerView = CNLiveShortVideoContentListView.init(frame: CGRect.zero)
  192 + pickerView.aid = aid
135 193 pickerView.resultBlock = result
136 194 pickerView.setupWithDataSource(title: title,dataArray: dataArray,episodeNow: episodeNow)
137 195  
... ... @@ -167,6 +225,9 @@ extension CNLiveShortVideoContentListView {
167 225 self.resultBlock(dataSource[indexPath.row] as! CNLiveAlbumListModel)
168 226 closeMethod()
169 227 }
  228 + func image(forEmptyDataSet scrollView: UIScrollView) -> UIImage? {
  229 + return UIImage(named: "short_video_default")
  230 + }
170 231 }
171 232  
172 233 class CNLiveShortVideoContentListTableViewCell: UITableViewCell {
... ...