Commit 4b35123b7c25aafa52c06999fa1b7657077dc74a

Authored by liushiyu
1 parent 280cce7f

视频列表没有加载功能

metaCode/Classes/Main/VideoPage/Controller/CNLiveShortVideoViewController.swift
@@ -380,7 +380,7 @@ extension CNLiveShortVideoViewController { @@ -380,7 +380,7 @@ extension CNLiveShortVideoViewController {
380 } 380 }
381 } 381 }
382 func listActionMethod(viewcell: CNLiveShortVideoListTableViewCell, button: UIButton) { 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 guard let self = self else { return } 384 guard let self = self else { return }
385 let index = self.dataArray.index(of: listModel) as NSInteger 385 let index = self.dataArray.index(of: listModel) as NSInteger
386 self.playTheIndex(index: index) 386 self.playTheIndex(index: index)
metaCode/Classes/Main/VideoPage/View/CNLiveShortVideoContentListView.swift
@@ -6,9 +6,12 @@ @@ -6,9 +6,12 @@
6 // 6 //
7 7
8 import Foundation 8 import Foundation
  9 +import MJRefresh
  10 +import EmptyDataSet_Swift
9 11
10 typealias CloseVideoListResultBlock = (_ listModel: Any) ->Void 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 lazy var grayMaskView: UIView = { 16 lazy var grayMaskView: UIView = {
14 let grayMaskView = UIView() 17 let grayMaskView = UIView()
@@ -51,6 +54,8 @@ class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewD @@ -51,6 +54,8 @@ class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewD
51 let tableView = UITableView(frame: .zero, style: .plain) 54 let tableView = UITableView(frame: .zero, style: .plain)
52 tableView.dataSource = self 55 tableView.dataSource = self
53 tableView.delegate = self 56 tableView.delegate = self
  57 + tableView.emptyDataSetDelegate = self
  58 + tableView.emptyDataSetSource = self
54 tableView.rowHeight = 90 59 tableView.rowHeight = 90
55 tableView.estimatedRowHeight = 90 60 tableView.estimatedRowHeight = 90
56 tableView.estimatedSectionFooterHeight = 0 61 tableView.estimatedSectionFooterHeight = 0
@@ -70,7 +75,11 @@ class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewD @@ -70,7 +75,11 @@ class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewD
70 return array 75 return array
71 }() 76 }()
72 77
  78 + var aid: String! = ""
  79 + var pageNum: NSInteger! = 1
  80 + var footerRefreshView: CNLiveFooterRefresh!
73 var resultBlock: CloseVideoListResultBlock! 81 var resultBlock: CloseVideoListResultBlock!
  82 + var reloadBlock: ReloadVideoListResultBlock!
74 83
75 override init(frame: CGRect) { 84 override init(frame: CGRect) {
76 super.init(frame: frame) 85 super.init(frame: frame)
@@ -109,14 +118,62 @@ class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewD @@ -109,14 +118,62 @@ class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewD
109 make.bottom.left.right.equalToSuperview() 118 make.bottom.left.right.equalToSuperview()
110 make.top.equalTo(lineLabel.snp.bottom).offset(10) 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 func setupWithDataSource(title: String,dataArray: NSMutableArray,episodeNow: String) { 136 func setupWithDataSource(title: String,dataArray: NSMutableArray,episodeNow: String) {
115 dataSource = dataArray 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 titleLabel.text = "\(title)·\(episodeNow)集" 143 titleLabel.text = "\(title)·\(episodeNow)集"
117 self.tableView.reloadData() 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 required init?(coder: NSCoder) { 177 required init?(coder: NSCoder) {
121 fatalError("init(coder:) has not been implemented") 178 fatalError("init(coder:) has not been implemented")
122 } 179 }
@@ -129,9 +186,10 @@ class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewD @@ -129,9 +186,10 @@ class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewD
129 removeFromSuperview() 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 let pickerView = CNLiveShortVideoContentListView.init(frame: CGRect.zero) 191 let pickerView = CNLiveShortVideoContentListView.init(frame: CGRect.zero)
  192 + pickerView.aid = aid
135 pickerView.resultBlock = result 193 pickerView.resultBlock = result
136 pickerView.setupWithDataSource(title: title,dataArray: dataArray,episodeNow: episodeNow) 194 pickerView.setupWithDataSource(title: title,dataArray: dataArray,episodeNow: episodeNow)
137 195
@@ -167,6 +225,9 @@ extension CNLiveShortVideoContentListView { @@ -167,6 +225,9 @@ extension CNLiveShortVideoContentListView {
167 self.resultBlock(dataSource[indexPath.row] as! CNLiveAlbumListModel) 225 self.resultBlock(dataSource[indexPath.row] as! CNLiveAlbumListModel)
168 closeMethod() 226 closeMethod()
169 } 227 }
  228 + func image(forEmptyDataSet scrollView: UIScrollView) -> UIImage? {
  229 + return UIImage(named: "short_video_default")
  230 + }
170 } 231 }
171 232
172 class CNLiveShortVideoContentListTableViewCell: UITableViewCell { 233 class CNLiveShortVideoContentListTableViewCell: UITableViewCell {