Commit b25a90f2a71e18ccbea774bb70daf25093b9fc58
1 parent
477c9de1
添加相关修改
Showing
3 changed files
with
81 additions
and
47 deletions
metaCode/Classes/Main/MinePage/Controller/CNLiveMineViewController.swift
| @@ -6,7 +6,7 @@ | @@ -6,7 +6,7 @@ | ||
| 6 | // | 6 | // |
| 7 | 7 | ||
| 8 | import Foundation | 8 | import Foundation |
| 9 | - | 9 | +import CNLiveShareToolKit |
| 10 | 10 | ||
| 11 | class CNLiveMineViewController : CNLiveBaseViewController, UITableViewDelegate, UITableViewDataSource{ | 11 | class CNLiveMineViewController : CNLiveBaseViewController, UITableViewDelegate, UITableViewDataSource{ |
| 12 | 12 | ||
| @@ -182,7 +182,8 @@ extension CNLiveMineViewController { | @@ -182,7 +182,8 @@ extension CNLiveMineViewController { | ||
| 182 | if indexPath.section == 4 { | 182 | if indexPath.section == 4 { |
| 183 | if indexPath.row == 0 { | 183 | if indexPath.row == 0 { |
| 184 | // self.navigationController?.pushViewController(CNLiveShopOrderViewController.init(), animated: true) | 184 | // self.navigationController?.pushViewController(CNLiveShopOrderViewController.init(), animated: true) |
| 185 | - StandSortManager.removeStandSort() | 185 | +// StandSortManager.removeStandSort() |
| 186 | +// CNLiveShareImageManager.pushWeChatMiniProgrem(withMiniAppId: "gh_234d4ed615a3", path: "page/login_hint/login_hint", extMsg: "", extDic: [:]) | ||
| 186 | } | 187 | } |
| 187 | if indexPath.row == 1 { | 188 | if indexPath.row == 1 { |
| 188 | self.navigationController?.pushViewController(CNLiveShopTransViewController.init(), animated: true) | 189 | self.navigationController?.pushViewController(CNLiveShopTransViewController.init(), animated: true) |
metaCode/Classes/Main/VideoPage/Controller/CNLiveShortVideoViewController.swift
| @@ -77,6 +77,7 @@ class CNLiveShortVideoViewController : CNLiveBaseViewController, UITableViewDele | @@ -77,6 +77,7 @@ class CNLiveShortVideoViewController : CNLiveBaseViewController, UITableViewDele | ||
| 77 | var pageNum: NSInteger! = 1 | 77 | var pageNum: NSInteger! = 1 |
| 78 | var isSelectable: Bool! = false | 78 | var isSelectable: Bool! = false |
| 79 | var currentIndex: NSInteger! = 0 | 79 | var currentIndex: NSInteger! = 0 |
| 80 | + var pickerView: CNLiveShortVideoContentListView! | ||
| 80 | var footerRefreshView: CNLiveFooterRefresh! | 81 | var footerRefreshView: CNLiveFooterRefresh! |
| 81 | // var playerManager = ZFIJKPlayerManager.init() | 82 | // var playerManager = ZFIJKPlayerManager.init() |
| 82 | var playerManager = ZFAVPlayerManager.init() | 83 | var playerManager = ZFAVPlayerManager.init() |
| @@ -136,13 +137,14 @@ class CNLiveShortVideoViewController : CNLiveBaseViewController, UITableViewDele | @@ -136,13 +137,14 @@ class CNLiveShortVideoViewController : CNLiveBaseViewController, UITableViewDele | ||
| 136 | view.addSubview(backBtn) | 137 | view.addSubview(backBtn) |
| 137 | 138 | ||
| 138 | if self.dataArray.count == 0 { | 139 | if self.dataArray.count == 0 { |
| 139 | - requestData {} | 140 | + requestData {noMore in } |
| 140 | } | 141 | } |
| 141 | 142 | ||
| 142 | addRefreshView() | 143 | addRefreshView() |
| 143 | 144 | ||
| 144 | player = ZFPlayerController(scrollView: tableView, playerManager: playerManager, containerViewTag: 100) | 145 | player = ZFPlayerController(scrollView: tableView, playerManager: playerManager, containerViewTag: 100) |
| 145 | -// player.disableGestureTypes = //[.pan, .pinch] | 146 | + player.disableGestureTypes = [.pan, .pinch] |
| 147 | + player.disablePanMovingDirection = .vertical | ||
| 146 | player.controlView = controlView | 148 | player.controlView = controlView |
| 147 | player.allowOrentitaionRotation = false | 149 | player.allowOrentitaionRotation = false |
| 148 | player.isWWANAutoPlay = true | 150 | player.isWWANAutoPlay = true |
| @@ -197,7 +199,7 @@ class CNLiveShortVideoViewController : CNLiveBaseViewController, UITableViewDele | @@ -197,7 +199,7 @@ class CNLiveShortVideoViewController : CNLiveBaseViewController, UITableViewDele | ||
| 197 | self.player.stopCurrentPlayingCell() | 199 | self.player.stopCurrentPlayingCell() |
| 198 | self.currentIndex = 0 | 200 | self.currentIndex = 0 |
| 199 | self.pageNum += 1 | 201 | self.pageNum += 1 |
| 200 | - self.requestData {} | 202 | + self.requestData {noMore in } |
| 201 | }) | 203 | }) |
| 202 | //预加载下 | 204 | //预加载下 |
| 203 | CNLiveQQEmotionManager.emotionsForQQ() | 205 | CNLiveQQEmotionManager.emotionsForQQ() |
| @@ -205,7 +207,7 @@ class CNLiveShortVideoViewController : CNLiveBaseViewController, UITableViewDele | @@ -205,7 +207,7 @@ class CNLiveShortVideoViewController : CNLiveBaseViewController, UITableViewDele | ||
| 205 | 207 | ||
| 206 | @objc func headerRefresh() { | 208 | @objc func headerRefresh() { |
| 207 | self.pageNum = 1 | 209 | self.pageNum = 1 |
| 208 | - self.requestData {} | 210 | + self.requestData {noMore in } |
| 209 | } | 211 | } |
| 210 | 212 | ||
| 211 | @objc func removePlayerAction() { | 213 | @objc func removePlayerAction() { |
| @@ -224,7 +226,7 @@ class CNLiveShortVideoViewController : CNLiveBaseViewController, UITableViewDele | @@ -224,7 +226,7 @@ class CNLiveShortVideoViewController : CNLiveBaseViewController, UITableViewDele | ||
| 224 | self.backBtn.frame = CGRectMake(15, KStatusBarHeight + 15, 45, 45) | 226 | self.backBtn.frame = CGRectMake(15, KStatusBarHeight + 15, 45, 45) |
| 225 | } | 227 | } |
| 226 | 228 | ||
| 227 | - func requestData(resultBlock: @escaping () -> Void) { | 229 | + func requestData(resultBlock: @escaping (_ noMore: Bool) -> Void) { |
| 228 | CNLiveShortVideoViewModel.requstWithShortVideo(aid: self.aid, page: self.pageNum) { [weak self] result, respStatue in | 230 | CNLiveShortVideoViewModel.requstWithShortVideo(aid: self.aid, page: self.pageNum) { [weak self] result, respStatue in |
| 229 | guard let self = self else { return } | 231 | guard let self = self else { return } |
| 230 | if respStatue == .success { | 232 | if respStatue == .success { |
| @@ -242,6 +244,9 @@ class CNLiveShortVideoViewController : CNLiveBaseViewController, UITableViewDele | @@ -242,6 +244,9 @@ class CNLiveShortVideoViewController : CNLiveBaseViewController, UITableViewDele | ||
| 242 | if self.tableView.mj_footer != nil { | 244 | if self.tableView.mj_footer != nil { |
| 243 | self.tableView.mj_footer?.endRefreshing() | 245 | self.tableView.mj_footer?.endRefreshing() |
| 244 | } | 246 | } |
| 247 | + if self.pickerView != nil { | ||
| 248 | + self.pickerView.setupWithArray(dataArray: self.dataArray) | ||
| 249 | + } | ||
| 245 | self.tableView.refreshControl?.endRefreshing() | 250 | self.tableView.refreshControl?.endRefreshing() |
| 246 | self.tableView.reloadData() | 251 | self.tableView.reloadData() |
| 247 | if self.pageNum == 1 { | 252 | if self.pageNum == 1 { |
| @@ -254,8 +259,10 @@ class CNLiveShortVideoViewController : CNLiveBaseViewController, UITableViewDele | @@ -254,8 +259,10 @@ class CNLiveShortVideoViewController : CNLiveBaseViewController, UITableViewDele | ||
| 254 | if !hasNextPage { | 259 | if !hasNextPage { |
| 255 | self.tableView.mj_footer?.endRefreshingWithNoMoreData() | 260 | self.tableView.mj_footer?.endRefreshingWithNoMoreData() |
| 256 | self.tableView.reloadData() | 261 | self.tableView.reloadData() |
| 262 | + resultBlock(true) | ||
| 257 | } | 263 | } |
| 258 | } else { | 264 | } else { |
| 265 | + resultBlock(false) | ||
| 259 | if self.tableView.mj_footer == nil { | 266 | if self.tableView.mj_footer == nil { |
| 260 | self.tableView.mj_footer = footerRefreshView | 267 | self.tableView.mj_footer = footerRefreshView |
| 261 | } | 268 | } |
| @@ -380,10 +387,21 @@ extension CNLiveShortVideoViewController { | @@ -380,10 +387,21 @@ extension CNLiveShortVideoViewController { | ||
| 380 | } | 387 | } |
| 381 | } | 388 | } |
| 382 | func listActionMethod(viewcell: CNLiveShortVideoListTableViewCell, button: UIButton) { | 389 | func listActionMethod(viewcell: CNLiveShortVideoListTableViewCell, button: UIButton) { |
| 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 | 390 | + pickerView = CNLiveShortVideoContentListView.showVideoContentListView(aid: viewcell.homeModel.albumMsgModel!.albumId,pageNum: self.pageNum,title: viewcell.homeModel.albumMsgModel!.albumName,dataArray: dataArray, episodeNow: viewcell.homeModel.albumMsgModel!.episodeNow, result: {[weak self] listModel in |
| 384 | guard let self = self else { return } | 391 | guard let self = self else { return } |
| 385 | let index = self.dataArray.index(of: listModel) as NSInteger | 392 | let index = self.dataArray.index(of: listModel) as NSInteger |
| 386 | self.playTheIndex(index: index) | 393 | self.playTheIndex(index: index) |
| 394 | + }, reload: {[weak self] page in | ||
| 395 | + guard let self = self else { return } | ||
| 396 | + self.player.stopCurrentPlayingCell() | ||
| 397 | + self.currentIndex = 0 | ||
| 398 | + self.pageNum = page | ||
| 399 | + self.requestData { noMore in | ||
| 400 | + self.pickerView.tableView.mj_footer?.endRefreshing() | ||
| 401 | + if noMore { | ||
| 402 | + self.pickerView.tableView.mj_footer?.endRefreshingWithNoMoreData() | ||
| 403 | + } | ||
| 404 | + } | ||
| 387 | }) | 405 | }) |
| 388 | } | 406 | } |
| 389 | func payActionMethod(viewcell: CNLiveShortVideoListTableViewCell, button: UIButton) { | 407 | func payActionMethod(viewcell: CNLiveShortVideoListTableViewCell, button: UIButton) { |
metaCode/Classes/Main/VideoPage/View/CNLiveShortVideoContentListView.swift
| @@ -10,7 +10,7 @@ import MJRefresh | @@ -10,7 +10,7 @@ import MJRefresh | ||
| 10 | import EmptyDataSet_Swift | 10 | import EmptyDataSet_Swift |
| 11 | 11 | ||
| 12 | typealias CloseVideoListResultBlock = (_ listModel: Any) ->Void | 12 | typealias CloseVideoListResultBlock = (_ listModel: Any) ->Void |
| 13 | -typealias ReloadVideoListResultBlock = (_ dataArray: NSMutableArray) ->Void | 13 | +typealias ReloadVideoListResultBlock = (_ page: NSInteger) ->Void |
| 14 | class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewDataSource, EmptyDataSetSource, EmptyDataSetDelegate { | 14 | class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewDataSource, EmptyDataSetSource, EmptyDataSetDelegate { |
| 15 | 15 | ||
| 16 | lazy var grayMaskView: UIView = { | 16 | lazy var grayMaskView: UIView = { |
| @@ -133,45 +133,41 @@ class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewD | @@ -133,45 +133,41 @@ class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewD | ||
| 133 | self.tableView.mj_footer = footerRefreshView | 133 | self.tableView.mj_footer = footerRefreshView |
| 134 | } | 134 | } |
| 135 | 135 | ||
| 136 | - func setupWithDataSource(title: String,dataArray: NSMutableArray,episodeNow: String) { | ||
| 137 | - dataSource = dataArray | ||
| 138 | - if Int(episodeNow) == dataArray.count { | ||
| 139 | - self.tableView.mj_footer?.endRefreshingWithNoMoreData() | ||
| 140 | - } else { | ||
| 141 | - self.pageNum = dataArray.count / 10 | ||
| 142 | - } | ||
| 143 | - titleLabel.text = "\(title)·\(episodeNow)集" | ||
| 144 | - self.tableView.reloadData() | ||
| 145 | - } | 136 | + |
| 146 | 137 | ||
| 147 | func requestData() { | 138 | 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 | - } | 139 | + self.reloadBlock(self.pageNum) |
| 140 | +// CNLiveShortVideoViewModel.requstWithShortVideo(aid: self.aid, page: self.pageNum) { [weak self] result, respStatue in | ||
| 141 | +// guard let self = self else { return } | ||
| 142 | +// if respStatue == .success { | ||
| 143 | +// let listArray = (result as! [Any]).first as! [CNLiveAlbumListModel] | ||
| 144 | +// self.dataSource.addObjects(from: listArray) | ||
| 145 | +// let urlArray = (result as! [Any]).last as! [String] | ||
| 146 | +// if listArray.count > 0 { | ||
| 147 | +// self.reloadBlock(NSMutableArray(array: listArray), NSMutableArray(array: urlArray), self.pageNum) | ||
| 148 | +// } | ||
| 149 | +// if self.tableView.mj_footer != nil { | ||
| 150 | +// self.tableView.mj_footer?.endRefreshing() | ||
| 151 | +// } | ||
| 152 | +// self.tableView.reloadData() | ||
| 153 | +// let hasNextPage = (result as! [Any])[1] as! Bool | ||
| 154 | +// if listArray.count == 0 { | ||
| 155 | +// if !hasNextPage { | ||
| 156 | +// self.tableView.mj_footer?.endRefreshingWithNoMoreData() | ||
| 157 | +// self.tableView.reloadData() | ||
| 158 | +// } | ||
| 159 | +// } | ||
| 160 | +// } else { | ||
| 161 | +// if self.tableView.mj_footer != nil { | ||
| 162 | +// self.tableView.mj_footer?.endRefreshing() | ||
| 163 | +// } | ||
| 164 | +// self.tableView.contentOffset = CGPoint.zero | ||
| 165 | +// self.tableView.refreshControl?.endRefreshing() | ||
| 166 | +// if self.dataSource.count == 0 { | ||
| 167 | +// self.tableView.reloadEmptyDataSet() | ||
| 168 | +// } | ||
| 169 | +// } | ||
| 170 | +// } | ||
| 175 | } | 171 | } |
| 176 | 172 | ||
| 177 | required init?(coder: NSCoder) { | 173 | required init?(coder: NSCoder) { |
| @@ -186,11 +182,13 @@ class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewD | @@ -186,11 +182,13 @@ class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewD | ||
| 186 | removeFromSuperview() | 182 | removeFromSuperview() |
| 187 | } | 183 | } |
| 188 | 184 | ||
| 189 | - static public func showVideoContentListView(aid: String,title: String,dataArray: NSMutableArray,episodeNow: String ,result: @escaping CloseVideoListResultBlock) { | 185 | + static public func showVideoContentListView(aid: String, pageNum: NSInteger,title: String,dataArray: NSMutableArray,episodeNow: String ,result: @escaping CloseVideoListResultBlock, reload: @escaping ReloadVideoListResultBlock) -> CNLiveShortVideoContentListView { |
| 190 | 186 | ||
| 191 | let pickerView = CNLiveShortVideoContentListView.init(frame: CGRect.zero) | 187 | let pickerView = CNLiveShortVideoContentListView.init(frame: CGRect.zero) |
| 192 | pickerView.aid = aid | 188 | pickerView.aid = aid |
| 189 | + pickerView.pageNum = pageNum | ||
| 193 | pickerView.resultBlock = result | 190 | pickerView.resultBlock = result |
| 191 | + pickerView.reloadBlock = reload | ||
| 194 | pickerView.setupWithDataSource(title: title,dataArray: dataArray,episodeNow: episodeNow) | 192 | pickerView.setupWithDataSource(title: title,dataArray: dataArray,episodeNow: episodeNow) |
| 195 | 193 | ||
| 196 | let delegate = UIApplication.shared.delegate as! AppDelegate | 194 | let delegate = UIApplication.shared.delegate as! AppDelegate |
| @@ -203,6 +201,23 @@ class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewD | @@ -203,6 +201,23 @@ class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewD | ||
| 203 | UIView.animate(withDuration: 0.1) { | 201 | UIView.animate(withDuration: 0.1) { |
| 204 | pickerView.alpha = 1 | 202 | pickerView.alpha = 1 |
| 205 | } completion: { _ in} | 203 | } completion: { _ in} |
| 204 | + return pickerView | ||
| 205 | + } | ||
| 206 | + | ||
| 207 | + func setupWithDataSource(title: String,dataArray: NSMutableArray,episodeNow: String) { | ||
| 208 | + dataSource = dataArray | ||
| 209 | + if Int(episodeNow) == dataArray.count { | ||
| 210 | + self.tableView.mj_footer?.endRefreshingWithNoMoreData() | ||
| 211 | + } else { | ||
| 212 | + self.pageNum = dataArray.count / 10 | ||
| 213 | + } | ||
| 214 | + titleLabel.text = "\(title)·\(episodeNow)集" | ||
| 215 | + self.tableView.reloadData() | ||
| 216 | + } | ||
| 217 | + | ||
| 218 | + public func setupWithArray(dataArray: NSMutableArray) { | ||
| 219 | + dataSource = dataArray | ||
| 220 | + self.tableView.reloadData() | ||
| 206 | } | 221 | } |
| 207 | 222 | ||
| 208 | } | 223 | } |