Commit 2979c247975ac639c21cb63daef7571a4d7fdce0
1 parent
bf53e195
点播 默认商品列表 相关推荐--默认数据
Showing
7 changed files
with
276 additions
and
13 deletions
metaCode/Classes/Main/HomePages/Model/CNLiveAlbumModel.swift
| ... | ... | @@ -52,7 +52,19 @@ class CNLiveAlbumModel:BaseModel{ |
| 52 | 52 | ///"weixin://dl/business/?t=NnvptiuER3k" |
| 53 | 53 | var s_showType = "" |
| 54 | 54 | //还有部分属性没写 |
| 55 | + var number = ""//取price赋值给price/// {"shop":{"group_img":"","simg":"https://wjj.ys2.cnliveimg.com/769/shop/img/2021/11/26/61a0a34c44436.png","group_name":"","fee_type":"3","title":"测试店铺","im_uid":"daren_11748645","spec_people_id":"0","im_group_id":"","is_gift":"1","phone":"","spec_people_img":"","id":"313","state":"2","gift_style_type":"0","news_img":""},"price":"58.00","shop_type":"1","to":"18064033","type":"2","prices":"68.00"} | |
| 56 | + //自定义属性 | |
| 57 | + var numberModel:CNLiveAlbumNumberModel? | |
| 55 | 58 | } |
| 59 | +class CNLiveAlbumNumberModel:BaseModel{ | |
| 60 | + var shop = "" | |
| 61 | + var price = ""//价格 | |
| 62 | + var shop_type = "" | |
| 63 | + var to = "" | |
| 64 | + var type = "" | |
| 65 | + var prices = "" | |
| 66 | +} | |
| 67 | + | |
| 56 | 68 | class CNLiveAlbumProductModel:BaseModel{ |
| 57 | 69 | var productId = "" |
| 58 | 70 | var productTitle = "" | ... | ... |
metaCode/Classes/Main/HomePages/ViewModel/CNLiveHomePageViewModel.swift
| ... | ... | @@ -528,7 +528,15 @@ class CNLiveHomePageViewModel:NSObject,URLSessionTaskDelegate{ |
| 528 | 528 | if (errorCode == "0") { |
| 529 | 529 | let dataDic = resp["data"] as! Dictionary<String, Any> |
| 530 | 530 | let dataMdl = newDictionaryToModel(dataDic , CNLiveAlbumBaseModel.self) |
| 531 | - resultBlock(dataMdl,.success) | |
| 531 | + | |
| 532 | + let albumBaseModel = dataMdl as! CNLiveAlbumBaseModel | |
| 533 | + for (_,model) in albumBaseModel.list.enumerated(){ | |
| 534 | + if let numberMdl = jsonToModel(model.number, CNLiveAlbumNumberModel.self) as? CNLiveAlbumNumberModel{ | |
| 535 | + model.numberModel = numberMdl | |
| 536 | + } | |
| 537 | + } | |
| 538 | + | |
| 539 | + resultBlock(albumBaseModel,.success) | |
| 532 | 540 | } |
| 533 | 541 | else{ |
| 534 | 542 | resultBlock(NSNull(),.failed) | ... | ... |
metaCode/Classes/Main/HuBiLieHomePage/Controller/CNLiveTVPlayerViewController.swift
| ... | ... | @@ -225,7 +225,7 @@ class CNLiveTVPlayerViewController:UIViewController, UITableViewDataSource, UITa |
| 225 | 225 | |
| 226 | 226 | func configDataArray(){ |
| 227 | 227 | //配置数据 |
| 228 | - var tempDataArray = NSMutableArray() | |
| 228 | + let tempDataArray = NSMutableArray() | |
| 229 | 229 | //单集 简介 |
| 230 | 230 | if let vodPlayModel = self.vodPlayModel{//单集有值-简介 |
| 231 | 231 | for (_,mdl) in vodPlayModel.blockList.enumerated(){ |
| ... | ... | @@ -268,6 +268,7 @@ class CNLiveTVPlayerViewController:UIViewController, UITableViewDataSource, UITa |
| 268 | 268 | } |
| 269 | 269 | //商品 |
| 270 | 270 | if let vodPlayModel = self.vodPlayModel{//单集有值 |
| 271 | + | |
| 271 | 272 | if vodPlayModel.goodsJson.count > 0{ |
| 272 | 273 | let goodMdls = jsonArrayToModel(vodPlayModel.goodsJson, CNLiveVodPlayShopModel.self) |
| 273 | 274 | if goodMdls.count > 0{//CNLiveVodPlayModel [CNLiveVodPlayShopModel] |
| ... | ... | @@ -275,7 +276,11 @@ class CNLiveTVPlayerViewController:UIViewController, UITableViewDataSource, UITa |
| 275 | 276 | tempDataArray.add(goodMdls) |
| 276 | 277 | }else{ |
| 277 | 278 | //没商品 |
| 279 | + self.getGoodBlockContents() | |
| 278 | 280 | } |
| 281 | + }else{ | |
| 282 | + //没商品 | |
| 283 | + self.getGoodBlockContents() | |
| 279 | 284 | } |
| 280 | 285 | } |
| 281 | 286 | |
| ... | ... | @@ -1087,7 +1092,20 @@ class CNLiveTVPlayerViewController:UIViewController, UITableViewDataSource, UITa |
| 1087 | 1092 | cell.vodPlayShopModels = vodPlayShopModels |
| 1088 | 1093 | cell.expandBlock = {[weak self] vodPlayShopModels in |
| 1089 | 1094 | guard let self = self else { return } |
| 1090 | - self.shopCellDetailBtnAction(vodPlayShopModels: vodPlayShopModels) | |
| 1095 | + self.shopCellDetailBtnAction(vodPlayShopModels: vodPlayShopModels as? [CNLiveVodPlayShopModel], albumModels: nil) | |
| 1096 | + } | |
| 1097 | + return cell | |
| 1098 | + }else if let vodPlayShopModels = self.dataArray[indexPath.row] as? [CNLiveAlbumModel]{ | |
| 1099 | + //默认电商商品 | |
| 1100 | + guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveVodPlayShopCellIdentifier) as? CNLiveVodPlayShopCell | |
| 1101 | + else { | |
| 1102 | + let cell = CNLiveVodPlayShopCell() | |
| 1103 | + return cell | |
| 1104 | + } | |
| 1105 | + cell.albumModels = vodPlayShopModels | |
| 1106 | + cell.expandBlock = {[weak self] vodPlayShopModels in | |
| 1107 | + guard let self = self else { return } | |
| 1108 | + self.shopCellDetailBtnAction(vodPlayShopModels: nil, albumModels: vodPlayShopModels as? [CNLiveAlbumModel]) | |
| 1091 | 1109 | } |
| 1092 | 1110 | return cell |
| 1093 | 1111 | }else { |
| ... | ... | @@ -1114,6 +1132,9 @@ class CNLiveTVPlayerViewController:UIViewController, UITableViewDataSource, UITa |
| 1114 | 1132 | }else if let vodPlayShopModels = self.dataArray[indexPath.row] as? [CNLiveVodPlayShopModel]{ |
| 1115 | 1133 | //电商 |
| 1116 | 1134 | return 145.0 |
| 1135 | + }else if let vodPlayShopModels = self.dataArray[indexPath.row] as? [CNLiveAlbumModel]{ | |
| 1136 | + //默认电商 | |
| 1137 | + return 145.0 | |
| 1117 | 1138 | }else { |
| 1118 | 1139 | |
| 1119 | 1140 | } |
| ... | ... | @@ -1146,13 +1167,19 @@ class CNLiveTVPlayerViewController:UIViewController, UITableViewDataSource, UITa |
| 1146 | 1167 | return .allButUpsideDown |
| 1147 | 1168 | } |
| 1148 | 1169 | |
| 1149 | - func shopCellDetailBtnAction(vodPlayShopModels:[CNLiveVodPlayShopModel]) { | |
| 1170 | + //电商商品展开 | |
| 1171 | + func shopCellDetailBtnAction(vodPlayShopModels:[CNLiveVodPlayShopModel]?,albumModels:[CNLiveAlbumModel]?) { | |
| 1150 | 1172 | bottomCommentShowContainView.isHidden = false |
| 1151 | 1173 | |
| 1152 | 1174 | let detailBgView = CNLiveVodShopBottomView(frame: bottomCommentShowContainView.bounds) |
| 1153 | 1175 | detailBgView.backgroundColor = .white |
| 1154 | 1176 | bottomCommentShowContainView.addSubview(detailBgView) |
| 1155 | - detailBgView.vodPlayShopModels = vodPlayShopModels | |
| 1177 | + if vodPlayShopModels?.count ?? 0 > 0{ | |
| 1178 | + detailBgView.vodPlayShopModels = vodPlayShopModels | |
| 1179 | + } | |
| 1180 | + if albumModels?.count ?? 0 > 0{ | |
| 1181 | + detailBgView.albumModels = albumModels | |
| 1182 | + } | |
| 1156 | 1183 | detailBgView.expandHideBlock = {[weak self] in |
| 1157 | 1184 | guard let self = self else { return } |
| 1158 | 1185 | self.bottomCommentShowContainView.removeAllSubviews() |
| ... | ... | @@ -1393,6 +1420,29 @@ class CNLiveTVPlayerViewController:UIViewController, UITableViewDataSource, UITa |
| 1393 | 1420 | } |
| 1394 | 1421 | } |
| 1395 | 1422 | |
| 1423 | + // MARK: - 获取默认商品block | |
| 1424 | + func getGoodBlockContents(){ | |
| 1425 | + showLoading(message: "") | |
| 1426 | + CNLiveHomePageViewModel.getBlockContents(blockId: "12385", page: 1) {[weak self] result, status in | |
| 1427 | + hiddenLoading() | |
| 1428 | + guard let self = self else { return } | |
| 1429 | + if status == .success{ | |
| 1430 | + let albumBaseModel = result as! CNLiveAlbumBaseModel | |
| 1431 | + self.dataArray.add(albumBaseModel.list) | |
| 1432 | + self.tableView.reloadData() | |
| 1433 | + | |
| 1434 | + }else if (status == .noNetwork) { | |
| 1435 | +// self.network_type = .noNetwork | |
| 1436 | +// self.tableView.reloadEmptyDataSet() | |
| 1437 | + } else { | |
| 1438 | +// self.network_type = .failed | |
| 1439 | +// self.tableView.reloadEmptyDataSet() | |
| 1440 | + } | |
| 1441 | + } | |
| 1442 | + | |
| 1443 | + | |
| 1444 | + } | |
| 1445 | + | |
| 1396 | 1446 | // MARK: - 点播play接口 |
| 1397 | 1447 | /* |
| 1398 | 1448 | func requestGetVodPlayApi(contentId:String){ | ... | ... |
metaCode/Classes/Main/HuBiLieHomePage/View/VodDetail/CNLiveVodPlayShopCell.swift
| ... | ... | @@ -8,7 +8,8 @@ |
| 8 | 8 | |
| 9 | 9 | import Foundation |
| 10 | 10 | |
| 11 | -typealias CNLiveVodShopCellExpandBlock = (_ vodPlayShopModels:[CNLiveVodPlayShopModel])->Void | |
| 11 | +//typealias CNLiveVodShopCellExpandBlock = (_ vodPlayShopModels:[CNLiveVodPlayShopModel])->Void | |
| 12 | +typealias CNLiveVodShopCellExpandBlock = (_ vodPlayShopModels:Any)->Void | |
| 12 | 13 | |
| 13 | 14 | class CNLiveVodPlayShopCell:UITableViewCell, UICollectionViewDelegate, UICollectionViewDataSource{ |
| 14 | 15 | var expandBlock:CNLiveVodShopCellExpandBlock? |
| ... | ... | @@ -23,6 +24,18 @@ class CNLiveVodPlayShopCell:UITableViewCell, UICollectionViewDelegate, UICollect |
| 23 | 24 | self.setupNewUI(models: vodPlayShopModels!) |
| 24 | 25 | } |
| 25 | 26 | } |
| 27 | + //默认电商商品list | |
| 28 | + var _albumModels : [CNLiveAlbumModel]? | |
| 29 | + var albumModels : [CNLiveAlbumModel]? { | |
| 30 | + get{ | |
| 31 | + _albumModels | |
| 32 | + } | |
| 33 | + set{ | |
| 34 | + _albumModels = newValue! | |
| 35 | + self.setupNewUI(goodsModels: _albumModels!) | |
| 36 | + } | |
| 37 | + } | |
| 38 | + | |
| 26 | 39 | |
| 27 | 40 | lazy var albumListArr: NSMutableArray = { |
| 28 | 41 | var albumListArr = NSMutableArray() |
| ... | ... | @@ -103,13 +116,24 @@ class CNLiveVodPlayShopCell:UITableViewCell, UICollectionViewDelegate, UICollect |
| 103 | 116 | self.contentView.clipsToBounds = true |
| 104 | 117 | } |
| 105 | 118 | |
| 119 | + func setupNewUI(goodsModels:[CNLiveAlbumModel]){ | |
| 120 | + self.albumListArr = NSMutableArray(array: goodsModels) | |
| 121 | + self.realHotCollectionView.reloadData() | |
| 122 | + } | |
| 123 | + | |
| 106 | 124 | func setupNewUI(models:[CNLiveVodPlayShopModel]){ |
| 107 | 125 | self.albumListArr = NSMutableArray(array: models) |
| 108 | 126 | self.realHotCollectionView.reloadData() |
| 109 | 127 | } |
| 110 | 128 | |
| 111 | 129 | @objc func detailBtnAction(){ |
| 112 | - self.expandBlock?(self.vodPlayShopModels!) | |
| 130 | + if let vodPlayShopModels = self.vodPlayShopModels,self.vodPlayShopModels != nil,self.vodPlayShopModels?.count ?? 0 > 0{ | |
| 131 | + self.expandBlock?(vodPlayShopModels) | |
| 132 | + }else if let albumModels = self.albumModels,self.albumModels != nil ,self.albumModels?.count ?? 0 > 0{ | |
| 133 | + self.expandBlock?(albumModels) | |
| 134 | + }else{ | |
| 135 | + | |
| 136 | + } | |
| 113 | 137 | } |
| 114 | 138 | |
| 115 | 139 | func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { |
| ... | ... | @@ -120,7 +144,11 @@ class CNLiveVodPlayShopCell:UITableViewCell, UICollectionViewDelegate, UICollect |
| 120 | 144 | |
| 121 | 145 | let cell = collectionView.dequeueReusableCell(withReuseIdentifier: kCNLiveVodPlayShopCollectionCellIdentifier, for: indexPath) as! CNLiveVodPlayShopCollectionCell |
| 122 | 146 | |
| 123 | - cell.vodPlayShopModel = self.albumListArr[indexPath.row] as? CNLiveVodPlayShopModel | |
| 147 | + if let model = self.albumListArr[indexPath.row] as? CNLiveVodPlayShopModel{ | |
| 148 | + cell.vodPlayShopModel = model | |
| 149 | + }else if let model = self.albumListArr[indexPath.row] as? CNLiveAlbumModel{ | |
| 150 | + cell.albumModel = model | |
| 151 | + } | |
| 124 | 152 | return cell |
| 125 | 153 | } |
| 126 | 154 | func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { |
| ... | ... | @@ -129,6 +157,11 @@ class CNLiveVodPlayShopCell:UITableViewCell, UICollectionViewDelegate, UICollect |
| 129 | 157 | let urlString = "https://managemall.cnlive.com/html/mall/1/#/pages/main/detail/detail?"+"id=\(vodPlayShopModel.id)&uid=\(UserInfoManager.shared.userInfo.uid)" |
| 130 | 158 | |
| 131 | 159 | CNLiveDownSlideTool.pushWebAndVodVCWithContentsMdl(model: kCNDownSlideContentsModelModelProduct , contentId: "" , pid: "" , shareUrl: "" , thirdUrl: urlString , title: vodPlayShopModel.title , s_to: "" ,trailerId: "" , controller: nil, slideModel: nil) |
| 160 | + }else if let albumModel = self.albumListArr[indexPath.row] as? CNLiveAlbumModel{ | |
| 161 | + //默认商品 | |
| 162 | + let urlString = "https://managemall.cnlive.com/html/mall/1/#/pages/main/detail/detail?"+"id=\(albumModel.contentId)&uid=\(UserInfoManager.shared.userInfo.uid)" | |
| 163 | + | |
| 164 | + CNLiveDownSlideTool.pushWebAndVodVCWithContentsMdl(model: kCNDownSlideContentsModelModelProduct , contentId: "" , pid: "" , shareUrl: "" , thirdUrl: urlString , title: albumModel.title , s_to: "" ,trailerId: "" , controller: nil, slideModel: nil) | |
| 132 | 165 | } |
| 133 | 166 | } |
| 134 | 167 | ... | ... |
metaCode/Classes/Main/HuBiLieHomePage/View/VodDetail/CNLiveVodPlayShopCollectionCell.swift
| ... | ... | @@ -21,6 +21,18 @@ class CNLiveVodPlayShopCollectionCell: UICollectionViewCell { |
| 21 | 21 | setupNewUI(model: _vodPlayShopModel!) |
| 22 | 22 | } |
| 23 | 23 | } |
| 24 | + //默认商品列表 | |
| 25 | + var _albumModel : CNLiveAlbumModel? | |
| 26 | + var albumModel : CNLiveAlbumModel? { | |
| 27 | + get{ | |
| 28 | + _albumModel | |
| 29 | + } | |
| 30 | + set{ | |
| 31 | + _albumModel = newValue! | |
| 32 | + self.setupNewUI(goodsModel: _albumModel!) | |
| 33 | + } | |
| 34 | + } | |
| 35 | + | |
| 24 | 36 | |
| 25 | 37 | lazy var iconImgView :UIImageView = { |
| 26 | 38 | let iconImgView = UIImageView(frame: CGRect(x: 9, y: 9, width: 72, height: 72)) |
| ... | ... | @@ -113,6 +125,11 @@ class CNLiveVodPlayShopCollectionCell: UICollectionViewCell { |
| 113 | 125 | self.titleLabel.text = model.title |
| 114 | 126 | self.subTitleLabel.text = model.price |
| 115 | 127 | } |
| 128 | + func setupNewUI(goodsModel:CNLiveAlbumModel){ | |
| 129 | + self.iconImgView.kf.setImage(with: URL(string: goodsModel.poster)) | |
| 130 | + self.titleLabel.text = goodsModel.title | |
| 131 | + self.subTitleLabel.text = goodsModel.numberModel?.price | |
| 132 | + } | |
| 116 | 133 | |
| 117 | 134 | //购买 |
| 118 | 135 | @objc func payBtnAction(){ | ... | ... |
metaCode/Classes/Main/HuBiLieHomePage/View/VodDetail/CNLiveVodShopBottomView.swift
| ... | ... | @@ -24,6 +24,19 @@ class CNLiveVodShopBottomView:UIView, UITableViewDataSource, UITableViewDelegate |
| 24 | 24 | } |
| 25 | 25 | } |
| 26 | 26 | |
| 27 | + //默认电商商品list | |
| 28 | + var _albumModels : [CNLiveAlbumModel]? | |
| 29 | + var albumModels : [CNLiveAlbumModel]? { | |
| 30 | + get{ | |
| 31 | + _albumModels | |
| 32 | + } | |
| 33 | + set{ | |
| 34 | + _albumModels = newValue! | |
| 35 | + self.setupNewUI(goodsModels: _albumModels!) | |
| 36 | + } | |
| 37 | + } | |
| 38 | + | |
| 39 | + | |
| 27 | 40 | lazy var titleLabel: UILabel = { |
| 28 | 41 | let titleLbl = UILabel() |
| 29 | 42 | titleLbl.font = BoldFont_18 |
| ... | ... | @@ -99,6 +112,13 @@ class CNLiveVodShopBottomView:UIView, UITableViewDataSource, UITableViewDelegate |
| 99 | 112 | self.dataArray.add(model) |
| 100 | 113 | self.tableView.reloadData() |
| 101 | 114 | } |
| 115 | + func setupNewUI(goodsModels:[CNLiveAlbumModel]){ | |
| 116 | + self.titleLabel.text = blockTitle | |
| 117 | + self.dataArray = NSMutableArray()//NSMutableArray(array: model) | |
| 118 | + self.dataArray.add(goodsModels) | |
| 119 | + self.tableView.reloadData() | |
| 120 | + } | |
| 121 | + | |
| 102 | 122 | |
| 103 | 123 | // MARK: - UITableViewDelegate |
| 104 | 124 | func numberOfSections(in tableView: UITableView) -> Int { |
| ... | ... | @@ -119,6 +139,16 @@ class CNLiveVodShopBottomView:UIView, UITableViewDataSource, UITableViewDelegate |
| 119 | 139 | |
| 120 | 140 | cell.vodPlayShopModel = vodPlayShopModel |
| 121 | 141 | return cell |
| 142 | + }else if let vodPlayShopModel = self.dataArray[indexPath.row] as? [CNLiveAlbumModel]{ | |
| 143 | + //默认商品 | |
| 144 | + guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveVodShopExpandCellIdentifier) as? CNLiveVodShopExpandCell | |
| 145 | + else { | |
| 146 | + let cell = CNLiveVodShopExpandCell() | |
| 147 | + return cell | |
| 148 | + } | |
| 149 | + | |
| 150 | + cell.albumModels = vodPlayShopModel | |
| 151 | + return cell | |
| 122 | 152 | } |
| 123 | 153 | return UITableViewCell() |
| 124 | 154 | } |
| ... | ... | @@ -131,6 +161,13 @@ class CNLiveVodShopBottomView:UIView, UITableViewDataSource, UITableViewDelegate |
| 131 | 161 | let hang = Int(ceil(CGFloat(vodPlayShopModel.count)*0.5)) |
| 132 | 162 | let totalRowH = Float(Float(hang)*rowH) |
| 133 | 163 | return CGFloat(totalRowH) |
| 164 | + }else if let vodPlayShopModel = self.dataArray[indexPath.row] as? [CNLiveAlbumModel]{ | |
| 165 | + let imgWH:Float = Float((KSreenWidth-15*3)*0.5) | |
| 166 | + let bottomH:Float = 55.0 | |
| 167 | + let rowH:Float = imgWH+bottomH+15.0 | |
| 168 | + let hang = Int(ceil(CGFloat(vodPlayShopModel.count)*0.5)) | |
| 169 | + let totalRowH = Float(Float(hang)*rowH) | |
| 170 | + return CGFloat(totalRowH) | |
| 134 | 171 | } |
| 135 | 172 | return 60 |
| 136 | 173 | } | ... | ... |
metaCode/Classes/Main/HuBiLieHomePage/View/VodDetail/CNLiveVodShopExpandCell.swift
| ... | ... | @@ -24,6 +24,23 @@ class CNLiveVodShopExpandCell: UITableViewCell { |
| 24 | 24 | setupNewUI(model: _vodPlayShopModel!) |
| 25 | 25 | } |
| 26 | 26 | } |
| 27 | + //默认电商商品list | |
| 28 | + var _albumModels : [CNLiveAlbumModel]? | |
| 29 | + var albumModels : [CNLiveAlbumModel]? { | |
| 30 | + get{ | |
| 31 | + _albumModels | |
| 32 | + } | |
| 33 | + set{ | |
| 34 | + _albumModels = newValue! | |
| 35 | + for obj in contentView.subviews{ | |
| 36 | + if obj.tag > 100{ | |
| 37 | + obj.removeFromSuperview() | |
| 38 | + } | |
| 39 | + } | |
| 40 | + self.setupNewUI(goodsModels: _albumModels!) | |
| 41 | + } | |
| 42 | + } | |
| 43 | + | |
| 27 | 44 | |
| 28 | 45 | //MARK: - 懒加载 |
| 29 | 46 | |
| ... | ... | @@ -37,7 +54,89 @@ class CNLiveVodShopExpandCell: UITableViewCell { |
| 37 | 54 | required init?(coder: NSCoder) { |
| 38 | 55 | fatalError("init(coder:) has not been implemented") |
| 39 | 56 | } |
| 40 | - | |
| 57 | + //默认商品 | |
| 58 | + func setupNewUI(goodsModels:[CNLiveAlbumModel]){ | |
| 59 | + | |
| 60 | + //总显示块数/循环数 | |
| 61 | + let totalNum = goodsModels.count | |
| 62 | + //lieIndex 当前是contents的第0列还是第1列 | |
| 63 | + var lieIndex = 0 | |
| 64 | + //hangIndex 当前是第几行,1...n | |
| 65 | + var hangIndex = 1 | |
| 66 | + | |
| 67 | + let imgWH = (KSreenWidth-15*3)*0.5 | |
| 68 | + let bottomH = 55.0 | |
| 69 | + let rowH = imgWH+bottomH+15.0 | |
| 70 | + | |
| 71 | + for i in 0..<totalNum{//i是第几行 | |
| 72 | + if lieIndex == 0{ | |
| 73 | + //显示左边的块 | |
| 74 | + let contentMdl = goodsModels[(hangIndex-1)*2+(lieIndex)] | |
| 75 | + let imageView = UIImageView(frame: CGRectMake(DownSlideRecommendLeftGap, CGFloat(hangIndex-1)*rowH, CGFloat(imgWH), CGFloat(imgWH))) | |
| 76 | + imageView.kf.setImage(with: URL(string:contentMdl.poster)) | |
| 77 | + imageView.tag = i+1000 | |
| 78 | + imageView.layer.cornerRadius = 9 | |
| 79 | + imageView.clipsToBounds = true | |
| 80 | + imageView.contentMode = .scaleAspectFill | |
| 81 | + | |
| 82 | + imageView.isUserInteractionEnabled = true | |
| 83 | + imageView.addGestureRecognizer(UITapGestureRecognizer.init(target: self, action: #selector(imgTapAction))) | |
| 84 | + contentView.addSubview(imageView) | |
| 85 | + | |
| 86 | + let titleStr = contentMdl.title | |
| 87 | + let subTitleStr = "¥\(contentMdl.numberModel?.price ?? "未知金额")" | |
| 88 | + let titleLbl = UILabel(frame: CGRect(x: imageView.left, y: imageView.bottom+10, width: imageView.width, height: 21)) | |
| 89 | + titleLbl.font = BoldFont_15 | |
| 90 | + titleLbl.textColor = HexColor("#333333") | |
| 91 | + titleLbl.text = titleStr | |
| 92 | + titleLbl.tag = i+1000 | |
| 93 | + contentView.addSubview(titleLbl) | |
| 94 | + | |
| 95 | + let subTitleLbl = UILabel(frame: CGRect(x: titleLbl.left, y: titleLbl.bottom, width: titleLbl.width, height: 24)) | |
| 96 | + subTitleLbl.font = Font_17 | |
| 97 | + subTitleLbl.textColor = HexColor("#E56E32") | |
| 98 | + subTitleLbl.text = subTitleStr | |
| 99 | + subTitleLbl.tag = i+1000 | |
| 100 | + contentView.addSubview(subTitleLbl) | |
| 101 | + | |
| 102 | + lieIndex = 1 | |
| 103 | + }else{ | |
| 104 | + //lieIndex==1显示右边的块 | |
| 105 | + let contentMdl = goodsModels[(hangIndex-1)*2+(lieIndex)] | |
| 106 | + let imageView = UIImageView(frame: CGRectMake(CGFloat(DownSlideRecommendLeftGap*2)+CGFloat(imgWH), CGFloat(hangIndex-1)*rowH, CGFloat(imgWH), CGFloat(imgWH))) | |
| 107 | + imageView.kf.setImage(with: URL(string:contentMdl.poster)) | |
| 108 | + imageView.tag = i+1000 | |
| 109 | + imageView.layer.cornerRadius = 14 | |
| 110 | + imageView.clipsToBounds = true | |
| 111 | + imageView.contentMode = .scaleAspectFill | |
| 112 | + | |
| 113 | + imageView.isUserInteractionEnabled = true | |
| 114 | + imageView.addGestureRecognizer(UITapGestureRecognizer.init(target: self, action: #selector(imgTapAction))) | |
| 115 | + contentView.addSubview(imageView) | |
| 116 | + | |
| 117 | + let titleStr = contentMdl.title | |
| 118 | + let subTitleStr = "¥\(contentMdl.numberModel?.price ?? "未知金额")" | |
| 119 | + | |
| 120 | + let titleLbl = UILabel(frame: CGRect(x: imageView.left, y: imageView.bottom+10, width: imageView.width, height: 21)) | |
| 121 | + titleLbl.font = BoldFont_15 | |
| 122 | + titleLbl.textColor = HexColor("#333333") | |
| 123 | + titleLbl.text = titleStr | |
| 124 | + titleLbl.tag = i+1000 | |
| 125 | + contentView.addSubview(titleLbl) | |
| 126 | + | |
| 127 | + let subTitleLbl = UILabel(frame: CGRect(x: titleLbl.left, y: titleLbl.bottom, width: titleLbl.width, height: 24)) | |
| 128 | + subTitleLbl.font = Font_17 | |
| 129 | + subTitleLbl.textColor = HexColor("#E56E32") | |
| 130 | + subTitleLbl.tag = i+1000 | |
| 131 | + subTitleLbl.text = subTitleStr | |
| 132 | + contentView.addSubview(subTitleLbl) | |
| 133 | + | |
| 134 | + lieIndex = 0 | |
| 135 | + hangIndex += 1 | |
| 136 | + } | |
| 137 | + } | |
| 138 | + } | |
| 139 | + | |
| 41 | 140 | func setupNewUI(model:[CNLiveVodPlayShopModel]){ |
| 42 | 141 | |
| 43 | 142 | //总显示块数/循环数 |
| ... | ... | @@ -123,10 +222,17 @@ class CNLiveVodShopExpandCell: UITableViewCell { |
| 123 | 222 | @objc func imgTapAction(ges: UITapGestureRecognizer){ |
| 124 | 223 | let imageView = ges.view as! UIImageView |
| 125 | 224 | let i = imageView.tag-1000 |
| 126 | - let contentMdl = (self.vodPlayShopModel?[i])! | |
| 127 | - let urlString = "https://managemall.cnlive.com/html/mall/1/#/pages/main/detail/detail?"+"id=\(contentMdl.id)&uid=\(UserInfoManager.shared.userInfo.uid)" | |
| 128 | - | |
| 129 | - CNLiveDownSlideTool.pushWebAndVodVCWithContentsMdl(model: kCNDownSlideContentsModelModelProduct , contentId: "" , pid: "" , shareUrl: "" , thirdUrl: urlString , title: contentMdl.title , s_to: "" ,trailerId: "" , controller: nil, slideModel: nil) | |
| 225 | + if self.vodPlayShopModel?.count ?? 0 > 0{ | |
| 226 | + let contentMdl = (self.vodPlayShopModel?[i])! | |
| 227 | + let urlString = "https://managemall.cnlive.com/html/mall/1/#/pages/main/detail/detail?"+"id=\(contentMdl.id)&uid=\(UserInfoManager.shared.userInfo.uid)" | |
| 228 | + | |
| 229 | + CNLiveDownSlideTool.pushWebAndVodVCWithContentsMdl(model: kCNDownSlideContentsModelModelProduct , contentId: "" , pid: "" , shareUrl: "" , thirdUrl: urlString , title: contentMdl.title , s_to: "" ,trailerId: "" , controller: nil, slideModel: nil) | |
| 230 | + }else if self.albumModels?.count ?? 0 > 0{ | |
| 231 | + let contentMdl = (self.albumModels?[i])! | |
| 232 | + let urlString = "https://managemall.cnlive.com/html/mall/1/#/pages/main/detail/detail?"+"id=\(contentMdl.contentId)&uid=\(UserInfoManager.shared.userInfo.uid)" | |
| 233 | + | |
| 234 | + CNLiveDownSlideTool.pushWebAndVodVCWithContentsMdl(model: kCNDownSlideContentsModelModelProduct , contentId: "" , pid: "" , shareUrl: "" , thirdUrl: urlString , title: contentMdl.title , s_to: "" ,trailerId: "" , controller: nil, slideModel: nil) | |
| 235 | + } | |
| 130 | 236 | } |
| 131 | 237 | |
| 132 | 238 | } | ... | ... |