Commit d4bb199117af888d1b017cd6decf325a8ffb81dd
Merge branch 'master' of http://bj.gitlab.cnlive.com/ios-team/CNLiveMateCode
Showing
8 changed files
with
150 additions
and
70 deletions
metaCode.xcodeproj/project.pbxproj
| @@ -2076,6 +2076,7 @@ | @@ -2076,6 +2076,7 @@ | ||
| 2076 | CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; | 2076 | CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; |
| 2077 | CLANG_ENABLE_MODULES = NO; | 2077 | CLANG_ENABLE_MODULES = NO; |
| 2078 | CODE_SIGN_ENTITLEMENTS = metaCode/metaCode.entitlements; | 2078 | CODE_SIGN_ENTITLEMENTS = metaCode/metaCode.entitlements; |
| 2079 | + CODE_SIGN_IDENTITY = "Apple Development"; | ||
| 2079 | CODE_SIGN_STYLE = Automatic; | 2080 | CODE_SIGN_STYLE = Automatic; |
| 2080 | CURRENT_PROJECT_VERSION = 1.0.4.24.01.15.15; | 2081 | CURRENT_PROJECT_VERSION = 1.0.4.24.01.15.15; |
| 2081 | DEVELOPMENT_TEAM = 94X49GG3ZW; | 2082 | DEVELOPMENT_TEAM = 94X49GG3ZW; |
| @@ -2308,6 +2309,7 @@ | @@ -2308,6 +2309,7 @@ | ||
| 2308 | ); | 2309 | ); |
| 2309 | PRODUCT_BUNDLE_IDENTIFIER = com.cnlive.metaCode; | 2310 | PRODUCT_BUNDLE_IDENTIFIER = com.cnlive.metaCode; |
| 2310 | PRODUCT_NAME = "$(TARGET_NAME)"; | 2311 | PRODUCT_NAME = "$(TARGET_NAME)"; |
| 2312 | + PROVISIONING_PROFILE_SPECIFIER = ""; | ||
| 2311 | SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; | 2313 | SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; |
| 2312 | SUPPORTS_MACCATALYST = NO; | 2314 | SUPPORTS_MACCATALYST = NO; |
| 2313 | SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; | 2315 | SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; |
| @@ -2328,6 +2330,7 @@ | @@ -2328,6 +2330,7 @@ | ||
| 2328 | CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; | 2330 | CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; |
| 2329 | CLANG_ENABLE_MODULES = NO; | 2331 | CLANG_ENABLE_MODULES = NO; |
| 2330 | CODE_SIGN_ENTITLEMENTS = metaCode/metaCode.entitlements; | 2332 | CODE_SIGN_ENTITLEMENTS = metaCode/metaCode.entitlements; |
| 2333 | + CODE_SIGN_IDENTITY = "Apple Development"; | ||
| 2331 | CODE_SIGN_STYLE = Automatic; | 2334 | CODE_SIGN_STYLE = Automatic; |
| 2332 | CURRENT_PROJECT_VERSION = 1.0.4.24.01.15.15; | 2335 | CURRENT_PROJECT_VERSION = 1.0.4.24.01.15.15; |
| 2333 | DEVELOPMENT_TEAM = 94X49GG3ZW; | 2336 | DEVELOPMENT_TEAM = 94X49GG3ZW; |
| @@ -2560,6 +2563,7 @@ | @@ -2560,6 +2563,7 @@ | ||
| 2560 | ); | 2563 | ); |
| 2561 | PRODUCT_BUNDLE_IDENTIFIER = com.cnlive.metaCode; | 2564 | PRODUCT_BUNDLE_IDENTIFIER = com.cnlive.metaCode; |
| 2562 | PRODUCT_NAME = "$(TARGET_NAME)"; | 2565 | PRODUCT_NAME = "$(TARGET_NAME)"; |
| 2566 | + PROVISIONING_PROFILE_SPECIFIER = ""; | ||
| 2563 | SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; | 2567 | SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; |
| 2564 | SUPPORTS_MACCATALYST = NO; | 2568 | SUPPORTS_MACCATALYST = NO; |
| 2565 | SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; | 2569 | SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; |
metaCode/Classes/Config/CNLiveConfigManager.swift
| @@ -83,4 +83,8 @@ extension Notification.Name { | @@ -83,4 +83,8 @@ extension Notification.Name { | ||
| 83 | //搜索确认处理 | 83 | //搜索确认处理 |
| 84 | public static let kDSSelectGoodsNotification = Notification.Name("kDSSelectGoodsNotification") | 84 | public static let kDSSelectGoodsNotification = Notification.Name("kDSSelectGoodsNotification") |
| 85 | } | 85 | } |
| 86 | + struct PlayerManage { | ||
| 87 | + //销毁播放器通知 | ||
| 88 | + public static let kPlayerDestroyNotification = Notification.Name("kPlayerDestroyNotification") | ||
| 89 | + } | ||
| 86 | } | 90 | } |
metaCode/Classes/Main/HomePage/Controller/DownSlideController/CNUpSlideDetailViewController.swift
| @@ -91,34 +91,13 @@ class CNUpSlideDetailViewController: CNLiveBaseViewController,UITableViewDataSou | @@ -91,34 +91,13 @@ class CNUpSlideDetailViewController: CNLiveBaseViewController,UITableViewDataSou | ||
| 91 | override func viewDidLoad() { | 91 | override func viewDidLoad() { |
| 92 | super.viewDidLoad() | 92 | super.viewDidLoad() |
| 93 | setupUI() | 93 | setupUI() |
| 94 | -// getImageFromCell() | ||
| 95 | -// if self.cellType == .playlet{ | ||
| 96 | - self.getBlockContents(page: 1) | ||
| 97 | -// } | 94 | + self.getBlockContents(page: 1) |
| 98 | } | 95 | } |
| 99 | 96 | ||
| 100 | private func setupUI() { | 97 | private func setupUI() { |
| 101 | self.view.layer.masksToBounds = true | 98 | self.view.layer.masksToBounds = true |
| 102 | self.view.addSubview(self.tableView) | 99 | self.view.addSubview(self.tableView) |
| 103 | self.tableView.frame = CGRect(x: 0, y: 0, width: KSreenWidth, height: KSreenHeight) | 100 | self.tableView.frame = CGRect(x: 0, y: 0, width: KSreenWidth, height: KSreenHeight) |
| 104 | - | ||
| 105 | - if self.cellType == .playlet{//短剧 大图 | ||
| 106 | -// self.view.addSubview(self.tableView) | ||
| 107 | -// self.tableView.frame = CGRect(x: 0, y: 0, width: KSreenWidth, height: KSreenHeight) | ||
| 108 | - }else if self.cellType == .course{//课程 大图 | ||
| 109 | - if self.slideModel!.type == SlideModelTypeAllCourse12{ | ||
| 110 | - //全部课程 | ||
| 111 | - | ||
| 112 | - }else if self.slideModel!.type == SlideModelTypeOneCourse75{ | ||
| 113 | - //大图课程 | ||
| 114 | - | ||
| 115 | - } | ||
| 116 | -// view.addSubview(scrollView) | ||
| 117 | -// scrollView.slideModel = _slideModel | ||
| 118 | - }else if self.cellType == .playletToCourse{ | ||
| 119 | - //首页->课程 | ||
| 120 | - | ||
| 121 | - } | ||
| 122 | view.addSubview(closeBtn) | 101 | view.addSubview(closeBtn) |
| 123 | view.addGestureRecognizer(dismissPanGesture) | 102 | view.addGestureRecognizer(dismissPanGesture) |
| 124 | } | 103 | } |
| @@ -314,8 +293,6 @@ class CNUpSlideDetailViewController: CNLiveBaseViewController,UITableViewDataSou | @@ -314,8 +293,6 @@ class CNUpSlideDetailViewController: CNLiveBaseViewController,UITableViewDataSou | ||
| 314 | self!.dataArray.addObjects(from: albumBaseModel.list) | 293 | self!.dataArray.addObjects(from: albumBaseModel.list) |
| 315 | if self!.dataArray.count > 0 && self!.tableView.mj_header == nil && self!.tableView.mj_footer == nil { | 294 | if self!.dataArray.count > 0 && self!.tableView.mj_header == nil && self!.tableView.mj_footer == nil { |
| 316 | self!.addRefreshView() | 295 | self!.addRefreshView() |
| 317 | -// self!.pageNum = self!.pageNum + 1 | ||
| 318 | -// self!.getBlockContents(page: self!.pageNum) | ||
| 319 | } | 296 | } |
| 320 | } | 297 | } |
| 321 | 298 |
metaCode/Classes/Main/HomePages/Controller/PlayletHomePage/CNLivePlayletHomePageController.swift
| @@ -6,16 +6,22 @@ | @@ -6,16 +6,22 @@ | ||
| 6 | // 短剧主页 | 6 | // 短剧主页 |
| 7 | 7 | ||
| 8 | import Foundation | 8 | import Foundation |
| 9 | - | 9 | +import MJRefresh |
| 10 | class CNLivePlayletHomePageController:CNLiveBaseViewController, UITableViewDataSource, UITableViewDelegate{ | 10 | class CNLivePlayletHomePageController:CNLiveBaseViewController, UITableViewDataSource, UITableViewDelegate{ |
| 11 | 11 | ||
| 12 | + var pageNum: NSInteger = 1 | ||
| 12 | var jianjieLblHeight:CGFloat = 36 | 13 | var jianjieLblHeight:CGFloat = 36 |
| 13 | 14 | ||
| 14 | let kCNLivePlayletCellIdentifier = "kCNLivePlayletCellIdentifier" | 15 | let kCNLivePlayletCellIdentifier = "kCNLivePlayletCellIdentifier" |
| 15 | let kCNLivePlayletHeaderCellIdentifier = "kCNLivePlayletHeaderCellIdentifier" | 16 | let kCNLivePlayletHeaderCellIdentifier = "kCNLivePlayletHeaderCellIdentifier" |
| 16 | ///数据源 | 17 | ///数据源 |
| 17 | - var albumModelArr:Array<CNLiveAlbumListModel> = [CNLiveAlbumListModel]() | ||
| 18 | - var albumId = "" | 18 | +// var albumModelArr:Array<CNLiveAlbumListModel> = [CNLiveAlbumListModel]() |
| 19 | + lazy var albumModelArr: NSMutableArray = { | ||
| 20 | + var dataArray = NSMutableArray() | ||
| 21 | + return dataArray | ||
| 22 | + }() | ||
| 23 | + var albumMsgModel:CNLiveAlbumMsgModel? | ||
| 24 | + var albumId = ""//aid | ||
| 19 | // MARK: - 懒加载 | 25 | // MARK: - 懒加载 |
| 20 | 26 | ||
| 21 | lazy var tableView : UITableView = { | 27 | lazy var tableView : UITableView = { |
| @@ -32,13 +38,13 @@ class CNLivePlayletHomePageController:CNLiveBaseViewController, UITableViewDataS | @@ -32,13 +38,13 @@ class CNLivePlayletHomePageController:CNLiveBaseViewController, UITableViewDataS | ||
| 32 | init(aid:String){ | 38 | init(aid:String){ |
| 33 | super.init(nibName: nil, bundle: nil) | 39 | super.init(nibName: nil, bundle: nil) |
| 34 | self.albumId = aid | 40 | self.albumId = aid |
| 35 | - self.getAlbumList(aid: aid)// self.albumModel!.contentId 或 self.albumMsgModel!.albumId | ||
| 36 | - } | ||
| 37 | - init(albumModelArr:Array<CNLiveAlbumListModel>) { | ||
| 38 | - self.albumModelArr = Array(albumModelArr) | ||
| 39 | - super.init(nibName: nil, bundle: nil) | ||
| 40 | - self.tableView.reloadData() | 41 | + self.getAlbumMsg(aid: aid)// self.albumModel!.contentId 或 self.albumMsgModel!.albumId |
| 41 | } | 42 | } |
| 43 | +// init(albumModelArr:NSMutableArray) { | ||
| 44 | +// self.albumModelArr = NSMutableArray(array: albumModelArr) | ||
| 45 | +// super.init(nibName: nil, bundle: nil) | ||
| 46 | +// self.tableView.reloadData() | ||
| 47 | +// } | ||
| 42 | 48 | ||
| 43 | required init?(coder: NSCoder) { | 49 | required init?(coder: NSCoder) { |
| 44 | fatalError("init(coder:) has not been implemented") | 50 | fatalError("init(coder:) has not been implemented") |
| @@ -54,36 +60,67 @@ class CNLivePlayletHomePageController:CNLiveBaseViewController, UITableViewDataS | @@ -54,36 +60,67 @@ class CNLivePlayletHomePageController:CNLiveBaseViewController, UITableViewDataS | ||
| 54 | } | 60 | } |
| 55 | 61 | ||
| 56 | // MARK: - 获取短剧主页数据 | 62 | // MARK: - 获取短剧主页数据 |
| 57 | - //获取专辑视频列表详情(播放地址 ,点赞数等信息) | ||
| 58 | - func getAlbumList(aid:String){ | ||
| 59 | - showLoading(message: "") | ||
| 60 | - CNLiveHomePageViewModel.getAlbumList(aid: aid){ result, status in | 63 | + //获取专辑详情(简介等) |
| 64 | + func getAlbumMsg(aid:String){ | ||
| 65 | + CNLiveHomePageViewModel.getAlbumMsg(aid: aid) { [weak self] result, status in | ||
| 61 | hiddenLoading() | 66 | hiddenLoading() |
| 62 | if status == .success{ | 67 | if status == .success{ |
| 63 | - let arr = result as! Array<CNLiveAlbumListModel> | ||
| 64 | - self.albumModelArr = Array(arr) | ||
| 65 | - self.getAlbumMsg(aid: aid) | 68 | + let model = result as! CNLiveAlbumMsgModel |
| 69 | + self!.albumMsgModel = model | ||
| 70 | + self!.getAlbumList(aid: aid, page: self!.pageNum) | ||
| 66 | }else{ | 71 | }else{ |
| 67 | 72 | ||
| 68 | } | 73 | } |
| 69 | } | 74 | } |
| 70 | } | 75 | } |
| 71 | - //获取专辑详情(简介等) | ||
| 72 | - func getAlbumMsg(aid:String){ | ||
| 73 | - CNLiveHomePageViewModel.getAlbumMsg(aid: aid) { result, status in | 76 | + //获取专辑视频列表详情(播放地址 ,点赞数等信息) |
| 77 | + func getAlbumList(aid:String, page:NSInteger){ | ||
| 78 | + showLoading(message: "") | ||
| 79 | + CNLiveHomePageViewModel.getAlbumList(aid: aid, page: page){[weak self] result, status in | ||
| 74 | hiddenLoading() | 80 | hiddenLoading() |
| 75 | if status == .success{ | 81 | if status == .success{ |
| 76 | - let model = result as! CNLiveAlbumMsgModel | ||
| 77 | - for listModel in self.albumModelArr { | ||
| 78 | - listModel.albumMsgModel = model | 82 | + let dataMdl = result as! CNLiveAlbumListBaseModel |
| 83 | + let arr = dataMdl.list | ||
| 84 | + for listModel in arr { | ||
| 85 | + listModel.albumMsgModel = self?.albumMsgModel | ||
| 86 | + } | ||
| 87 | + | ||
| 88 | + if self!.pageNum > 1 && self!.albumModelArr.count > 0 { | ||
| 89 | + self!.albumModelArr.addObjects(from: arr) | ||
| 90 | + } | ||
| 91 | + if self!.pageNum == 1 { | ||
| 92 | + self!.albumModelArr.removeAllObjects() | ||
| 93 | + self!.albumModelArr.addObjects(from: arr) | ||
| 94 | + if self!.albumModelArr.count > 0 && self!.tableView.mj_header == nil && self!.tableView.mj_footer == nil { | ||
| 95 | + self!.addRefreshView() | ||
| 96 | + } | ||
| 97 | + } | ||
| 98 | + | ||
| 99 | + self!.tableView.mj_header?.endRefreshing() | ||
| 100 | + | ||
| 101 | + self!.tableView.reloadData() | ||
| 102 | + if dataMdl.hasNextPage{ | ||
| 103 | + self!.tableView.mj_footer?.endRefreshing() | ||
| 104 | + }else{ | ||
| 105 | + self!.tableView.mj_footer?.endRefreshingWithNoMoreData() | ||
| 79 | } | 106 | } |
| 80 | - self.tableView.reloadData() | ||
| 81 | }else{ | 107 | }else{ |
| 82 | 108 | ||
| 83 | } | 109 | } |
| 84 | } | 110 | } |
| 85 | } | 111 | } |
| 86 | 112 | ||
| 113 | + func addRefreshView() { | ||
| 114 | + tableView.mj_header = MJRefreshNormalHeader.init(refreshingBlock: {[weak self] in | ||
| 115 | + self!.pageNum = 1 | ||
| 116 | + self!.getAlbumList(aid: self!.albumId , page: 1) | ||
| 117 | + }) | ||
| 118 | + | ||
| 119 | + tableView.mj_footer = MJRefreshAutoNormalFooter.init(refreshingBlock: {[weak self] in | ||
| 120 | + self!.pageNum = self!.pageNum + 1 | ||
| 121 | + self!.getAlbumList(aid: self!.albumId, page: self!.pageNum) | ||
| 122 | + }) | ||
| 123 | + } | ||
| 87 | 124 | ||
| 88 | func numberOfSections(in tableView: UITableView) -> Int { | 125 | func numberOfSections(in tableView: UITableView) -> Int { |
| 89 | 2 | 126 | 2 |
| @@ -109,11 +146,11 @@ class CNLivePlayletHomePageController:CNLiveBaseViewController, UITableViewDataS | @@ -109,11 +146,11 @@ class CNLivePlayletHomePageController:CNLiveBaseViewController, UITableViewDataS | ||
| 109 | } | 146 | } |
| 110 | cell.homePageNeedReloadActionBlock = { | 147 | cell.homePageNeedReloadActionBlock = { |
| 111 | DispatchQueue.main.asyncAfter(deadline: .now()+0.5) { [self] in | 148 | DispatchQueue.main.asyncAfter(deadline: .now()+0.5) { [self] in |
| 112 | - self.getAlbumList(aid: self.albumId) | 149 | + self.getAlbumMsg(aid: self.albumId) |
| 113 | } | 150 | } |
| 114 | } | 151 | } |
| 115 | if self.albumModelArr.count > 0{ | 152 | if self.albumModelArr.count > 0{ |
| 116 | - let albumListModel = self.albumModelArr[0] | 153 | + let albumListModel = self.albumModelArr[0] as! CNLiveAlbumListModel |
| 117 | cell.albumListModel = albumListModel | 154 | cell.albumListModel = albumListModel |
| 118 | } | 155 | } |
| 119 | return cell | 156 | return cell |
| @@ -123,7 +160,7 @@ class CNLivePlayletHomePageController:CNLiveBaseViewController, UITableViewDataS | @@ -123,7 +160,7 @@ class CNLivePlayletHomePageController:CNLiveBaseViewController, UITableViewDataS | ||
| 123 | let cell = CNLivePlayletHomePageCell() | 160 | let cell = CNLivePlayletHomePageCell() |
| 124 | return cell | 161 | return cell |
| 125 | } | 162 | } |
| 126 | - let albumListModel = self.albumModelArr[indexPath.row] | 163 | + let albumListModel = self.albumModelArr[indexPath.row] as! CNLiveAlbumListModel |
| 127 | cell.albumListModel = albumListModel | 164 | cell.albumListModel = albumListModel |
| 128 | return cell | 165 | return cell |
| 129 | } | 166 | } |
| @@ -138,10 +175,23 @@ class CNLivePlayletHomePageController:CNLiveBaseViewController, UITableViewDataS | @@ -138,10 +175,23 @@ class CNLivePlayletHomePageController:CNLiveBaseViewController, UITableViewDataS | ||
| 138 | func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | 175 | func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { |
| 139 | if indexPath.section == 0{ | 176 | if indexPath.section == 0{ |
| 140 | }else{ | 177 | }else{ |
| 141 | - let albumListModel = self.albumModelArr[indexPath.row] | 178 | + let albumListModel = self.albumModelArr[indexPath.row] as! CNLiveAlbumListModel |
| 142 | let aid = albumListModel.albumMsgModel?.albumId ?? "" | 179 | let aid = albumListModel.albumMsgModel?.albumId ?? "" |
| 180 | + //发播放器销毁通知 | ||
| 181 | + NotificationCenter.default.post(name: Notification.Name.PlayerManage.kPlayerDestroyNotification, object: nil) | ||
| 182 | + //在当前堆栈里遍历删除 播放控制器CNLiveShortVideoViewController | ||
| 183 | + let tempArray = NSMutableArray.init() | ||
| 184 | + self.navigationController?.viewControllers.forEach({ item in | ||
| 185 | + if (item.isKind(of: CNLiveShortVideoViewController.self)) { | ||
| 186 | + tempArray.remove(item) | ||
| 187 | + }else{ | ||
| 188 | + tempArray.add(item) | ||
| 189 | + } | ||
| 190 | + }) | ||
| 191 | + self.navigationController?.viewControllers = tempArray as! [CNLiveBaseViewController] | ||
| 143 | //跳转播放页 | 192 | //跳转播放页 |
| 144 | - navigationViewController().visibleViewController?.navigationController?.pushViewController(CNLiveShortVideoViewController(aid: aid), animated: pushAnimated) | 193 | + let dataArray = Array(self.albumModelArr) as! [CNLiveAlbumListModel] |
| 194 | + navigationViewController().visibleViewController?.navigationController?.pushViewController(CNLiveShortVideoViewController(aid: aid, page: self.pageNum, currentIndex: indexPath.row, dataArray: dataArray), animated: pushAnimated) | ||
| 145 | } | 195 | } |
| 146 | } | 196 | } |
| 147 | } | 197 | } |
metaCode/Classes/Main/HomePages/Model/CNLiveAlbumListModel.swift
| @@ -7,6 +7,28 @@ | @@ -7,6 +7,28 @@ | ||
| 7 | 7 | ||
| 8 | import Foundation | 8 | import Foundation |
| 9 | 9 | ||
| 10 | +class CNLiveAlbumListBaseModel:BaseModel{ | ||
| 11 | + var endRow = 0 | ||
| 12 | + var firstPage = 0 | ||
| 13 | + var hasNextPage = false | ||
| 14 | + var nextPage = 0 | ||
| 15 | + var hasPreviousPage = false | ||
| 16 | + var isFirstPage = true | ||
| 17 | + var isLastPage = true | ||
| 18 | + var lastPage = 0 | ||
| 19 | + var list = [CNLiveAlbumListModel]() | ||
| 20 | + var navigateFirstPage = 0 | ||
| 21 | + var navigateLastPage = 0 | ||
| 22 | + var navigatePages = 0 | ||
| 23 | + var navigatepageNums:Array<Any> = [] | ||
| 24 | + var pageNum = 0 | ||
| 25 | + var pageSize = 0 | ||
| 26 | + var pages = 0 | ||
| 27 | + var prePage = 0 | ||
| 28 | + var size = 0 | ||
| 29 | + var startRow = 0 | ||
| 30 | + var total = 0 | ||
| 31 | +} | ||
| 10 | class CNLiveAlbumListModel:BaseModel{ | 32 | class CNLiveAlbumListModel:BaseModel{ |
| 11 | var title = "" | 33 | var title = "" |
| 12 | var shortTitle = "" | 34 | var shortTitle = "" |
metaCode/Classes/Main/HomePages/View/PlayletHomePage/CNLivePlayletHomePageHeaderCell.swift
| @@ -73,13 +73,19 @@ class CNLivePlayletHomePageHeaderCell:UITableViewCell{ | @@ -73,13 +73,19 @@ class CNLivePlayletHomePageHeaderCell:UITableViewCell{ | ||
| 73 | titleLabel.height = height | 73 | titleLabel.height = height |
| 74 | return titleLabel | 74 | return titleLabel |
| 75 | }() | 75 | }() |
| 76 | + ///简介背景 | ||
| 77 | + lazy var jianjieBgView :UIView = { | ||
| 78 | + let jianjieBgView = UIView(frame: CGRect(x: self.iconImgView.left, y: self.iconImgView.bottom+10, width: KSreenWidth-2*self.iconImgView.left, height: 21)) | ||
| 79 | + jianjieBgView.backgroundColor = UIColor(red:0.98, green:0.98, blue:0.98, alpha:1.00) | ||
| 80 | + return jianjieBgView | ||
| 81 | + }() | ||
| 76 | ///简介 | 82 | ///简介 |
| 77 | lazy var jianjieLabel: UILabel = { | 83 | lazy var jianjieLabel: UILabel = { |
| 78 | - let titleLabel = UILabel.init(frame: CGRectMake(self.iconImgView.left, self.iconImgView.bottom+10, KSreenWidth-2*self.iconImgView.left, 21)) | 84 | + let titleLabel = UILabel.init(frame: CGRectMake(self.iconImgView.left+10, self.iconImgView.bottom+20, KSreenWidth-2*self.iconImgView.left-13, 21)) |
| 79 | titleLabel.textColor = HexColor("#333333") | 85 | titleLabel.textColor = HexColor("#333333") |
| 80 | titleLabel.textAlignment = .left | 86 | titleLabel.textAlignment = .left |
| 81 | titleLabel.font = Font_12 | 87 | titleLabel.font = Font_12 |
| 82 | - titleLabel.backgroundColor = UIColor(red:0.98, green:0.98, blue:0.98, alpha:1.00) | 88 | + titleLabel.backgroundColor = .clear// UIColor(red:0.98, green:0.98, blue:0.98, alpha:1.00) |
| 83 | titleLabel.text = "简介" | 89 | titleLabel.text = "简介" |
| 84 | titleLabel.numberOfLines = 0 | 90 | titleLabel.numberOfLines = 0 |
| 85 | var lines = titleLabel.getRealLabelTextLines() | 91 | var lines = titleLabel.getRealLabelTextLines() |
| @@ -93,9 +99,9 @@ class CNLivePlayletHomePageHeaderCell:UITableViewCell{ | @@ -93,9 +99,9 @@ class CNLivePlayletHomePageHeaderCell:UITableViewCell{ | ||
| 93 | //展开,收起 | 99 | //展开,收起 |
| 94 | lazy var expandBtn: UIButton = { | 100 | lazy var expandBtn: UIButton = { |
| 95 | let expandBtn = UIButton.init(type: .custom) | 101 | let expandBtn = UIButton.init(type: .custom) |
| 96 | - expandBtn.backgroundColor = .white | 102 | + expandBtn.backgroundColor = .clear |
| 97 | 103 | ||
| 98 | - expandBtn.frame = CGRect(x: self.jianjieLabel.right-60, y: self.jianjieLabel.bottom, width: 60, height: 30) | 104 | + expandBtn.frame = CGRect(x: self.jianjieBgView.right-60, y: self.jianjieBgView.bottom-10, width: 60, height: 30) |
| 99 | expandBtn.setTitle("展开", for: .normal) | 105 | expandBtn.setTitle("展开", for: .normal) |
| 100 | expandBtn.setTitle("收起", for: .selected) | 106 | expandBtn.setTitle("收起", for: .selected) |
| 101 | 107 | ||
| @@ -168,6 +174,7 @@ class CNLivePlayletHomePageHeaderCell:UITableViewCell{ | @@ -168,6 +174,7 @@ class CNLivePlayletHomePageHeaderCell:UITableViewCell{ | ||
| 168 | self.iconImgView.addSubview(self.payIconImgView) | 174 | self.iconImgView.addSubview(self.payIconImgView) |
| 169 | self.contentView.addSubview(self.titleLabl) | 175 | self.contentView.addSubview(self.titleLabl) |
| 170 | self.contentView.addSubview(self.jishuLabel) | 176 | self.contentView.addSubview(self.jishuLabel) |
| 177 | + self.contentView.addSubview(self.jianjieBgView) | ||
| 171 | self.contentView.addSubview(self.jianjieLabel) | 178 | self.contentView.addSubview(self.jianjieLabel) |
| 172 | self.contentView.addSubview(self.expandBtn) | 179 | self.contentView.addSubview(self.expandBtn) |
| 173 | self.contentView.addSubview(self.followBtn) | 180 | self.contentView.addSubview(self.followBtn) |
| @@ -182,7 +189,7 @@ class CNLivePlayletHomePageHeaderCell:UITableViewCell{ | @@ -182,7 +189,7 @@ class CNLivePlayletHomePageHeaderCell:UITableViewCell{ | ||
| 182 | } | 189 | } |
| 183 | 190 | ||
| 184 | self.followBtn.snp.makeConstraints { make in | 191 | self.followBtn.snp.makeConstraints { make in |
| 185 | - make.top.equalTo(self.jianjieLabel.snp.bottom).offset(25) | 192 | + make.top.equalTo(self.jianjieBgView.snp.bottom).offset(25) |
| 186 | make.left.equalTo(self.iconImgView.snp.left) | 193 | make.left.equalTo(self.iconImgView.snp.left) |
| 187 | make.width.equalTo(140) | 194 | make.width.equalTo(140) |
| 188 | make.height.equalTo(40) | 195 | make.height.equalTo(40) |
| @@ -267,8 +274,16 @@ class CNLivePlayletHomePageHeaderCell:UITableViewCell{ | @@ -267,8 +274,16 @@ class CNLivePlayletHomePageHeaderCell:UITableViewCell{ | ||
| 267 | 274 | ||
| 268 | }else{ | 275 | }else{ |
| 269 | //收起状态 | 276 | //收起状态 |
| 270 | - self.jianjieLabel.height = 2*height | 277 | + if lines <= 2{ |
| 278 | + //小于2行,按实际行数 | ||
| 279 | + self.jianjieLabel.height = CGFloat(lines)*height | ||
| 280 | + }else{ | ||
| 281 | + //大于2行, 显示2行 | ||
| 282 | + self.jianjieLabel.height = 2*height | ||
| 283 | + } | ||
| 271 | } | 284 | } |
| 285 | + self.jianjieBgView.height = self.jianjieLabel.height+20 | ||
| 286 | + self.expandBtn.top = self.jianjieBgView.bottom-10 | ||
| 272 | if model.albumMsgModel!.collection{ | 287 | if model.albumMsgModel!.collection{ |
| 273 | self.followChangeStatus(isFollowed: true) | 288 | self.followChangeStatus(isFollowed: true) |
| 274 | }else{ | 289 | }else{ |
| @@ -289,8 +304,10 @@ class CNLivePlayletHomePageHeaderCell:UITableViewCell{ | @@ -289,8 +304,10 @@ class CNLivePlayletHomePageHeaderCell:UITableViewCell{ | ||
| 289 | //文本展开状态,点击收起 | 304 | //文本展开状态,点击收起 |
| 290 | self.jianjieLabel.height = 2*height | 305 | self.jianjieLabel.height = 2*height |
| 291 | } | 306 | } |
| 307 | + self.jianjieBgView.height = self.jianjieLabel.height+20 | ||
| 292 | self.homePageHeaderCellChangedBlock!(self, self.jianjieLabel.height) | 308 | self.homePageHeaderCellChangedBlock!(self, self.jianjieLabel.height) |
| 293 | - self.expandBtn.top = self.jianjieLabel.bottom | 309 | + |
| 310 | + self.expandBtn.top = self.jianjieBgView.bottom-10 | ||
| 294 | 311 | ||
| 295 | } | 312 | } |
| 296 | @objc func followBtnAction(button:UIButton){ | 313 | @objc func followBtnAction(button:UIButton){ |
| @@ -390,7 +407,7 @@ class CNLivePlayletHomePageHeaderCell:UITableViewCell{ | @@ -390,7 +407,7 @@ class CNLivePlayletHomePageHeaderCell:UITableViewCell{ | ||
| 390 | // 这里可以对获取到的子图层进行操作或者访问其属性等 | 407 | // 这里可以对获取到的子图层进行操作或者访问其属性等 |
| 391 | return subLayer | 408 | return subLayer |
| 392 | } else { | 409 | } else { |
| 393 | - print("未找到指定名称的图层") | 410 | +// print("未找到指定名称的图层") |
| 394 | return nil | 411 | return nil |
| 395 | } | 412 | } |
| 396 | } | 413 | } |
metaCode/Classes/Main/HomePages/ViewModel/CNLiveHomePageViewModel.swift
| @@ -141,10 +141,12 @@ class CNLiveHomePageViewModel:NSObject{ | @@ -141,10 +141,12 @@ class CNLiveHomePageViewModel:NSObject{ | ||
| 141 | } | 141 | } |
| 142 | 142 | ||
| 143 | /// 获取首页-专辑视频列表详情 | 143 | /// 获取首页-专辑视频列表详情 |
| 144 | - static func getAlbumList(aid:String,resultBlock: @escaping downSlideResultBlock) { | 144 | + static func getAlbumList(aid:String, page:NSInteger,resultBlock: @escaping downSlideResultBlock) { |
| 145 | let param = NSMutableDictionary() | 145 | let param = NSMutableDictionary() |
| 146 | param.setValue(aid, forKey: "aid") | 146 | param.setValue(aid, forKey: "aid") |
| 147 | param.setValue(UserInfoManager.shared.userInfo.uid, forKey: "sid") | 147 | param.setValue(UserInfoManager.shared.userInfo.uid, forKey: "sid") |
| 148 | + param.setValue("\(page)", forKey: "page") | ||
| 149 | + | ||
| 148 | CNLiveNetworking.setAllowRequestDefaultArgument(true) | 150 | CNLiveNetworking.setAllowRequestDefaultArgument(true) |
| 149 | CNLiveNetworking.setupShowDataResult(false) | 151 | CNLiveNetworking.setupShowDataResult(false) |
| 150 | CNLiveNetworking.requestNetwork(with: .GET, urlString: APPBaseCMSUrl+"/ugcApi/albumList", param: param as! [String : String], cacheType: .networkOnly) { task, result, error in | 152 | CNLiveNetworking.requestNetwork(with: .GET, urlString: APPBaseCMSUrl+"/ugcApi/albumList", param: param as! [String : String], cacheType: .networkOnly) { task, result, error in |
| @@ -154,14 +156,18 @@ class CNLiveHomePageViewModel:NSObject{ | @@ -154,14 +156,18 @@ class CNLiveHomePageViewModel:NSObject{ | ||
| 154 | let errorCode = "\(resp["errorCode"] ?? "0")" | 156 | let errorCode = "\(resp["errorCode"] ?? "0")" |
| 155 | if (errorCode == "0") { | 157 | if (errorCode == "0") { |
| 156 | let dataDic = resp["data"] as! Dictionary<String, Any> | 158 | let dataDic = resp["data"] as! Dictionary<String, Any> |
| 157 | - let dataList = dataDic["list"] as! Array<Any> | ||
| 158 | - var listArr = Array<Any>() | ||
| 159 | - for listDic in dataList{ | ||
| 160 | - let dataMdl = newDictionaryToModel(listDic as! [String : Any], CNLiveAlbumListModel.self) | ||
| 161 | - listArr.append(dataMdl) | ||
| 162 | - } | 159 | + let dataMdl = newDictionaryToModel(dataDic , CNLiveAlbumListBaseModel.self) |
| 160 | + resultBlock(dataMdl,.success) | ||
| 163 | 161 | ||
| 164 | - resultBlock(listArr,.success) | 162 | +// let dataDic = resp["data"] as! Dictionary<String, Any> |
| 163 | +// let dataList = dataDic["list"] as! Array<Any> | ||
| 164 | +// var listArr = Array<Any>() | ||
| 165 | +// for listDic in dataList{ | ||
| 166 | +// let dataMdl = newDictionaryToModel(listDic as! [String : Any], CNLiveAlbumListModel.self) | ||
| 167 | +// listArr.append(dataMdl) | ||
| 168 | +// } | ||
| 169 | +// | ||
| 170 | +// resultBlock(listArr,.success) | ||
| 165 | }else{ | 171 | }else{ |
| 166 | resultBlock(NSNull(),.failed) | 172 | resultBlock(NSNull(),.failed) |
| 167 | } | 173 | } |
metaCode/Classes/Vendors/metaCode-Bridging-Header.h