Commit 42057c6e1dfd58490e86315eb92e54e2b0aaf270
1 parent
479d4634
专辑付费 时 ,逻辑 ,刷新页面 , 苹果内购
Showing
5 changed files
with
261 additions
and
23 deletions
metaCode.xcodeproj/project.pbxproj
| ... | ... | @@ -199,6 +199,7 @@ |
| 199 | 199 | 196A55F52D95432B00B06DB7 /* CNLiveVodLandscapeBeiSuView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 196A55F42D95432B00B06DB7 /* CNLiveVodLandscapeBeiSuView.swift */; }; |
| 200 | 200 | 196A55F72D963ACE00B06DB7 /* CNLiveVodLandscapeXuanjiView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 196A55F62D963ACE00B06DB7 /* CNLiveVodLandscapeXuanjiView.swift */; }; |
| 201 | 201 | 196A55F92D963AE700B06DB7 /* CNLiveVodLandscapeGaoqingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 196A55F82D963AE600B06DB7 /* CNLiveVodLandscapeGaoqingView.swift */; }; |
| 202 | + 196A55FB2D9BE7DC00B06DB7 /* CNLiveVodPayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 196A55FA2D9BE7DC00B06DB7 /* CNLiveVodPayView.swift */; }; | |
| 202 | 203 | 197325D22BB11C18002E41A3 /* DatabaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 197325D12BB11C18002E41A3 /* DatabaseManager.swift */; }; |
| 203 | 204 | 1975636E2C5A2EB2004E0F42 /* CNLiveVitaeWorkDetailController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1975636D2C5A2EB2004E0F42 /* CNLiveVitaeWorkDetailController.swift */; }; |
| 204 | 205 | 197563712C5A3151004E0F42 /* CNLiveVitaeWorkCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 197563702C5A3151004E0F42 /* CNLiveVitaeWorkCell.swift */; }; |
| ... | ... | @@ -601,6 +602,7 @@ |
| 601 | 602 | 196A55F42D95432B00B06DB7 /* CNLiveVodLandscapeBeiSuView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveVodLandscapeBeiSuView.swift; sourceTree = "<group>"; }; |
| 602 | 603 | 196A55F62D963ACE00B06DB7 /* CNLiveVodLandscapeXuanjiView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveVodLandscapeXuanjiView.swift; sourceTree = "<group>"; }; |
| 603 | 604 | 196A55F82D963AE600B06DB7 /* CNLiveVodLandscapeGaoqingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveVodLandscapeGaoqingView.swift; sourceTree = "<group>"; }; |
| 605 | + 196A55FA2D9BE7DC00B06DB7 /* CNLiveVodPayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveVodPayView.swift; sourceTree = "<group>"; }; | |
| 604 | 606 | 197325D12BB11C18002E41A3 /* DatabaseManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseManager.swift; sourceTree = "<group>"; }; |
| 605 | 607 | 1975636D2C5A2EB2004E0F42 /* CNLiveVitaeWorkDetailController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveVitaeWorkDetailController.swift; sourceTree = "<group>"; }; |
| 606 | 608 | 197563702C5A3151004E0F42 /* CNLiveVitaeWorkCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveVitaeWorkCell.swift; sourceTree = "<group>"; }; |
| ... | ... | @@ -1490,6 +1492,7 @@ |
| 1490 | 1492 | 196A55F42D95432B00B06DB7 /* CNLiveVodLandscapeBeiSuView.swift */, |
| 1491 | 1493 | 196A55F82D963AE600B06DB7 /* CNLiveVodLandscapeGaoqingView.swift */, |
| 1492 | 1494 | 196A55F62D963ACE00B06DB7 /* CNLiveVodLandscapeXuanjiView.swift */, |
| 1495 | + 196A55FA2D9BE7DC00B06DB7 /* CNLiveVodPayView.swift */, | |
| 1493 | 1496 | ); |
| 1494 | 1497 | path = HengPing; |
| 1495 | 1498 | sourceTree = "<group>"; |
| ... | ... | @@ -2380,6 +2383,7 @@ |
| 2380 | 2383 | 1909DCA72C637378001E7986 /* CNLiveDigitalResumePreviewFiveCell.swift in Sources */, |
| 2381 | 2384 | 19B711872D55FE130000872A /* CNLiveDownSlideBannerCell.swift in Sources */, |
| 2382 | 2385 | 19F1C2332AB5728B0083D06C /* CNIDCardView.swift in Sources */, |
| 2386 | + 196A55FB2D9BE7DC00B06DB7 /* CNLiveVodPayView.swift in Sources */, | |
| 2383 | 2387 | 19C0F7692BD9F9F70097CC8F /* CNThreeLoginViewController.swift in Sources */, |
| 2384 | 2388 | 191732F32B084DBC007BCC04 /* CNLiveShopClassifySwitchTableViewCell.swift in Sources */, |
| 2385 | 2389 | 191732E72B0615C1007BCC04 /* UIScrollView+CNLiveExtensions.swift in Sources */, | ... | ... |
metaCode/Classes/Main/HuBiLieHomePage/Controller/CNLiveTVPlayerViewController.swift
| ... | ... | @@ -10,9 +10,22 @@ import ZFPlayer |
| 10 | 10 | import MJRefresh |
| 11 | 11 | import HandyJSON |
| 12 | 12 | import CNLiveShareToolKit |
| 13 | +import CNLivePayCostModule | |
| 13 | 14 | |
| 14 | 15 | class CNLiveTVPlayerViewController:UIViewController, UITableViewDataSource, UITableViewDelegate{ |
| 15 | 16 | |
| 17 | + //专辑付费内容记录 | |
| 18 | + var payVodAlbumListModel:CNLiveVodAlbumListModel? | |
| 19 | + var payContentId = "" | |
| 20 | + var payAid = "" | |
| 21 | + var payAlbumListArr = NSMutableArray() | |
| 22 | + var payIndex = 0 | |
| 23 | + var payTitle = "" | |
| 24 | + var payIsAlbum = false | |
| 25 | + var payActivityId = "" | |
| 26 | + var isPayZhuanJi = false | |
| 27 | + | |
| 28 | + | |
| 16 | 29 | var player: ZFPlayerController! |
| 17 | 30 | //当前内容id |
| 18 | 31 | var contentId = "" |
| ... | ... | @@ -324,6 +337,57 @@ class CNLiveTVPlayerViewController:UIViewController, UITableViewDataSource, UITa |
| 324 | 337 | } |
| 325 | 338 | self.controlView.showTitle(title, cover: UIImage.imageWithColor(color: .darkGray, size: CGSize(width: 50, height: 50)), fullScreenMode: .landscape) |
| 326 | 339 | self.playTitle = title |
| 340 | + self.controlView.vodPlayerPayBlock = {[weak self] in | |
| 341 | + guard let self = self else { return } | |
| 342 | + //支付按钮,拉起内购 | |
| 343 | + //成功用pay参数 刷新页面 | |
| 344 | + | |
| 345 | + let orderId = CNLiveHomePageViewModel.getRandomOrderId() | |
| 346 | + let notifyUrl = "http://apps.pay.cnlive.com/upappnotify/notify/orderForVideo" | |
| 347 | + //分转元,没有小数点 | |
| 348 | + let fenString = self.payVodAlbumListModel?.product?.iosRmb ?? "100" | |
| 349 | + // 将字符串转换为整数 | |
| 350 | + // 使用guard语句确保字符串可以转换为整数 | |
| 351 | + guard let fen = Int(fenString) else { | |
| 352 | + print("无法将字符串转换为整数") | |
| 353 | + return | |
| 354 | + } | |
| 355 | + // 计算元值(整数除法,自动舍去小数部分) | |
| 356 | + var yuan = fen / 100 | |
| 357 | + if yuan <= 0{//如果是测试0.1元 ,线上默认设置为1元 | |
| 358 | + yuan = 1 | |
| 359 | + } | |
| 360 | + // 将结果转换为字符串 | |
| 361 | + let yuanString = String(yuan) | |
| 362 | + | |
| 363 | + let prdId = "com.cnlive.metaCode."+yuanString//"com.cnlive.metaCode."+"1"//+(viewcell.homeModel.albumMsgModel?.product?.iosRmb ?? "1") | |
| 364 | + | |
| 365 | + let body = self.payVodAlbumListModel?.product?.productTitle ?? "" | |
| 366 | + let total_fee = yuan*100 | |
| 367 | + let dataDic = NSMutableDictionary() | |
| 368 | + dataDic.setValue(body, forKey: "body") | |
| 369 | + dataDic.setValue(notifyUrl, forKey: "notify_url") | |
| 370 | + dataDic.setValue(orderId, forKey: "orderId") | |
| 371 | + dataDic.setValue(prdId, forKey: "prdId") | |
| 372 | + dataDic.setValue(total_fee, forKey: "total_fee") | |
| 373 | + | |
| 374 | + //后台设置一个 com.cnlive.meta.1 2 60 3 78 | |
| 375 | + //苹果内购暂时报错 验证失败支付失败 | |
| 376 | + CNLivePayCostModule.showApplePayViw(withParamDict: dataDic as! [AnyHashable : Any], fromVC: currentViewController()!) {[weak self] result in | |
| 377 | + guard let self = self else { return } | |
| 378 | + if result == CNLivePayCostTypeResultSucc{ | |
| 379 | + print("succ") | |
| 380 | + //刷新页面 | |
| 381 | + self.contentId = self.payContentId | |
| 382 | + self.refreshVodData(isAblumVideo: self.payIsAlbum) | |
| 383 | + self.controlView.payBgView.isHidden = true | |
| 384 | + self.player.allowOrentitaionRotation = true | |
| 385 | + } | |
| 386 | + | |
| 387 | + } | |
| 388 | + | |
| 389 | + | |
| 390 | + } | |
| 327 | 391 | self.controlView.controlGaoqingUpdateBlock = { [weak self] gaoqing in |
| 328 | 392 | guard let self = self else { return } |
| 329 | 393 | // |
| ... | ... | @@ -444,7 +508,7 @@ class CNLiveTVPlayerViewController:UIViewController, UITableViewDataSource, UITa |
| 444 | 508 | func destroyPlayer(){ |
| 445 | 509 | self.player.stop() |
| 446 | 510 | } |
| 447 | - | |
| 511 | + | |
| 448 | 512 | // MARK: - 专辑/看点 列表切换某集,只刷新播放器和点赞收藏 |
| 449 | 513 | func kanDianOrAlbumChangeContentApi(contentId:String,title:String,isAlbum:Bool,activeId:String){ |
| 450 | 514 | // if isAlbum{ |
| ... | ... | @@ -581,19 +645,21 @@ class CNLiveTVPlayerViewController:UIViewController, UITableViewDataSource, UITa |
| 581 | 645 | } |
| 582 | 646 | |
| 583 | 647 | } |
| 584 | - // MARK: - 刷新 整个页面 | |
| 648 | + // MARK: - 专辑刷新整个页面 | |
| 585 | 649 | func refreshVodData(isAblumVideo:Bool){ |
| 586 | - CNLiveDownSlideTool.getVodData(contentId: self.contentId, isAblumVideo: isAblumVideo) {[weak self] vodPlayModel, contentId,url, result, status in | |
| 650 | + CNLiveDownSlideTool.getVodData(contentId: self.payAid, isAblumVideo: isAblumVideo,seleContentId: self.payContentId) {[weak self] vodPlayModel, contentId,url, result, status in | |
| 651 | + guard let self = self else { return } | |
| 587 | 652 | if status == .success{ |
| 588 | - self!.vodPlayModel = vodPlayModel | |
| 589 | - self!.contentId = contentId | |
| 653 | + self.vodPlayModel = vodPlayModel | |
| 654 | + self.contentId = contentId | |
| 590 | 655 | if let vodAlbumListBaseModel = result{ |
| 591 | - self!.vodAlbumListBaseModel = vodAlbumListBaseModel | |
| 656 | + self.vodAlbumListBaseModel = vodAlbumListBaseModel | |
| 592 | 657 | } |
| 593 | - self!.url = URL(string: url) | |
| 594 | - self!.configDataArray() | |
| 595 | - self!.tableView.mj_header?.endRefreshing() | |
| 596 | - self!.tableView.reloadData() | |
| 658 | + self.url = URL(string: url) | |
| 659 | + self.configDataArray() | |
| 660 | + self.albumIndex = self.payIndex | |
| 661 | + self.tableView.mj_header?.endRefreshing() | |
| 662 | + self.tableView.reloadData() | |
| 597 | 663 | var title = "" |
| 598 | 664 | for (_,mdl) in vodPlayModel.blockList.enumerated(){ |
| 599 | 665 | if mdl.type == "5" && mdl.list.count > 0 {//点播详情数据 |
| ... | ... | @@ -603,7 +669,7 @@ class CNLiveTVPlayerViewController:UIViewController, UITableViewDataSource, UITa |
| 603 | 669 | } |
| 604 | 670 | } |
| 605 | 671 | } |
| 606 | - self!.playWithUrlAndTitle(url: url, title: title) | |
| 672 | + self.playWithUrlAndTitle(url: url, title: title) | |
| 607 | 673 | }else{ |
| 608 | 674 | |
| 609 | 675 | } |
| ... | ... | @@ -691,13 +757,68 @@ class CNLiveTVPlayerViewController:UIViewController, UITableViewDataSource, UITa |
| 691 | 757 | |
| 692 | 758 | cell.selectBlock = {[weak self] vodModel, index ,albumListArr in |
| 693 | 759 | guard let self = self else { return } |
| 694 | - self.contentId = vodModel.contentId | |
| 695 | - self.albumListArr = albumListArr | |
| 696 | - self.albumIndex = index | |
| 697 | - self.kanDianIndex = -1 | |
| 698 | - self.isPlayAblumOrKandian = true | |
| 699 | - self.kanDianOrAlbumChangeContentApi(contentId: vodModel.contentId, title: vodModel.title, isAlbum: true, activeId: vodModel.activityId) | |
| 700 | -// self.changeContentApi(vodModel: vodModel) | |
| 760 | + self.player.currentPlayerManager.pause() | |
| 761 | + isPayZhuanJi = false//是否付过费 | |
| 762 | + var yuanString = "1" | |
| 763 | + if vodModel.product?.check == true { | |
| 764 | + //免费或者付过费了 | |
| 765 | + self.controlView.payBgView.isHidden = true | |
| 766 | + isPayZhuanJi = true | |
| 767 | + } else { | |
| 768 | + if vodModel.product?.productType == "4" { | |
| 769 | + //这里表示可以进行试听 | |
| 770 | + self.controlView.payBgView.isHidden = true | |
| 771 | + isPayZhuanJi = true | |
| 772 | + } else { | |
| 773 | + //需要付费 | |
| 774 | + self.controlView.payBgView.isHidden = false | |
| 775 | + isPayZhuanJi = false | |
| 776 | + //分转元,没有小数点 | |
| 777 | + let fenString = vodModel.product!.iosRmb | |
| 778 | + // 将字符串转换为整数 | |
| 779 | + // 使用guard语句确保字符串可以转换为整数 | |
| 780 | + guard let fen = Int(fenString) else { | |
| 781 | + print("无法将字符串转换为整数") | |
| 782 | + return | |
| 783 | + } | |
| 784 | + // 计算元值(整数除法,自动舍去小数部分) | |
| 785 | + var yuan = fen / 100 | |
| 786 | + if yuan <= 0{//如果是测试0.1元 ,线上默认设置为1元 | |
| 787 | + yuan = 1 | |
| 788 | + } | |
| 789 | + // 将结果转换为字符串 | |
| 790 | + yuanString = String(yuan) | |
| 791 | + } | |
| 792 | + } | |
| 793 | + | |
| 794 | + if isPayZhuanJi{ | |
| 795 | + //已经付费 | |
| 796 | + self.controlView.payBgView.isHidden = true | |
| 797 | + self.contentId = vodModel.contentId | |
| 798 | + self.albumListArr = albumListArr | |
| 799 | + self.albumIndex = index | |
| 800 | + self.kanDianIndex = -1 | |
| 801 | + self.isPlayAblumOrKandian = true | |
| 802 | + self.kanDianOrAlbumChangeContentApi(contentId: vodModel.contentId, title: vodModel.title, isAlbum: true, activeId: vodModel.activityId) | |
| 803 | + self.player.allowOrentitaionRotation = true | |
| 804 | + }else{ | |
| 805 | + //没付费 | |
| 806 | + //显示付费页面 | |
| 807 | + self.controlView.payBgView.isHidden = false | |
| 808 | + self.controlView.payBgView.payBtn.setTitle("\(yuanString)元购买本专辑", for: .normal) | |
| 809 | + //成功用pay参数 刷新页面 | |
| 810 | + self.payVodAlbumListModel = vodModel | |
| 811 | + self.payAid = vodModel.albumId//.contentId | |
| 812 | + self.payContentId = vodModel.contentId | |
| 813 | + self.payAlbumListArr = albumListArr | |
| 814 | + self.payIndex = index | |
| 815 | + self.kanDianIndex = -1 | |
| 816 | + self.isPlayAblumOrKandian = true | |
| 817 | + self.payTitle = vodModel.title | |
| 818 | + self.payIsAlbum = true | |
| 819 | + self.payActivityId = vodModel.activityId | |
| 820 | + self.player.allowOrentitaionRotation = false | |
| 821 | + } | |
| 701 | 822 | } |
| 702 | 823 | return cell |
| 703 | 824 | }else if let vodPlayShopModels = self.dataArray[indexPath.row] as? [CNLiveVodPlayShopModel]{ | ... | ... |
metaCode/Classes/Main/HuBiLieHomePage/Util/CNLiveDownSlideTool.swift
| ... | ... | @@ -266,15 +266,15 @@ class CNLiveDownSlideTool:NSObject{ |
| 266 | 266 | navigationViewController().visibleViewController?.navigationController?.pushViewController(webVC, animated: pushAnimated) |
| 267 | 267 | } |
| 268 | 268 | //刷新使用 获取点播 单集或者专辑数据 |
| 269 | - class func getVodData(contentId:String,isAblumVideo:Bool,resultBlock: @escaping downSlideVodResultBlock){ | |
| 269 | + class func getVodData(contentId:String,isAblumVideo:Bool,seleContentId:String,resultBlock: @escaping downSlideVodResultBlock){ | |
| 270 | 270 | showLoading(message: "") |
| 271 | 271 | if isAblumVideo{ |
| 272 | 272 | //专辑 |
| 273 | - //获取专辑详情 | |
| 273 | + //获取专辑详情 contentId:2653 | |
| 274 | 274 | CNLiveDownSlideTool.getVodAlbumMsgApi(contentId: contentId){result, status in |
| 275 | 275 | if status == .success{ |
| 276 | 276 | if let vodModel = result as? CNLiveVodAlbumMsgModel{ |
| 277 | - //获取专辑列表 | |
| 277 | + //获取专辑列表 contentId:2653 | |
| 278 | 278 | CNLiveHomePageViewModel.requstWithVodAlbumVideoList(aid: contentId){result, status in |
| 279 | 279 | hiddenLoading() |
| 280 | 280 | if let albumListBaseModel = result as? CNLiveVodAlbumListBaseModel{ |
| ... | ... | @@ -283,10 +283,10 @@ class CNLiveDownSlideTool:NSObject{ |
| 283 | 283 | albumListModel.vodAlbumMsgModel = vodModel |
| 284 | 284 | if idx == vodModel.episodeLast{ |
| 285 | 285 | currVodModel = |
| 286 | - albumListModel } | |
| 286 | + albumListModel} | |
| 287 | 287 | } |
| 288 | 288 | //拿最新播放集数的单集pid,再请求play |
| 289 | - CNLiveDownSlideTool.getVodPlayApi(contentId: currVodModel?.contentId ?? ""){ result, status in | |
| 289 | + CNLiveDownSlideTool.getVodPlayApi(contentId:(seleContentId.count>0 ? seleContentId : currVodModel?.contentId ?? "") ){ result, status in | |
| 290 | 290 | if status == .success{ |
| 291 | 291 | if let vodModel = result as? CNLiveVodPlayModel{ |
| 292 | 292 | //获得点播url | ... | ... |
metaCode/Classes/Main/HuBiLieHomePage/View/VodDetail/CNLiveZFPlayerControlView.swift
| ... | ... | @@ -10,10 +10,13 @@ import ZFPlayer |
| 10 | 10 | |
| 11 | 11 | //标清 2 ,高清 3 ,超清 4 |
| 12 | 12 | typealias CNLiveVodPlayerControlLandscapeGaoqingUpdateBlock = (_ gaoqing:Int)->Void |
| 13 | +typealias CNLiveVodPlayerPayBlock = ()->Void | |
| 13 | 14 | |
| 14 | 15 | class CNLiveZFPlayerControlView:ZFPlayerControlView{ |
| 15 | 16 | |
| 16 | 17 | var controlGaoqingUpdateBlock:CNLiveVodPlayerControlLandscapeGaoqingUpdateBlock? |
| 18 | + var vodPlayerPayBlock:CNLiveVodPlayerPayBlock? | |
| 19 | + | |
| 17 | 20 | lazy var beiSuBtn: UIButton = { |
| 18 | 21 | let closeBtn = UIButton(type: .custom) |
| 19 | 22 | closeBtn.setTitle("倍速", for: .normal) |
| ... | ... | @@ -52,6 +55,12 @@ class CNLiveZFPlayerControlView:ZFPlayerControlView{ |
| 52 | 55 | return bottomNavView |
| 53 | 56 | }() |
| 54 | 57 | |
| 58 | + lazy var payBgView :CNLiveVodPayView = { | |
| 59 | + let bottomNavView = CNLiveVodPayView() | |
| 60 | + return bottomNavView | |
| 61 | + }() | |
| 62 | + | |
| 63 | + | |
| 55 | 64 | override init(frame: CGRect) { |
| 56 | 65 | super.init(frame: frame) |
| 57 | 66 | self.initUI() |
| ... | ... | @@ -107,6 +116,18 @@ class CNLiveZFPlayerControlView:ZFPlayerControlView{ |
| 107 | 116 | self.gaoqingBgView.isHidden = true |
| 108 | 117 | self.controlGaoqingUpdateBlock?(gaoqing) |
| 109 | 118 | } |
| 119 | + | |
| 120 | + self.addSubview(self.payBgView) | |
| 121 | + payBgView.snp.makeConstraints { make in | |
| 122 | + make.left.right.top.bottom.equalToSuperview() | |
| 123 | + } | |
| 124 | + self.payBgView.isHidden = true | |
| 125 | + self.payBgView.payBlock = { | |
| 126 | + //拉起内购 | |
| 127 | + self.vodPlayerPayBlock?() | |
| 128 | + | |
| 129 | + } | |
| 130 | + | |
| 110 | 131 | } |
| 111 | 132 | |
| 112 | 133 | override func layoutSubviews() { | ... | ... |
metaCode/Classes/Main/HuBiLieHomePage/View/VodDetail/HengPing/CNLiveVodPayView.swift
0 → 100644
| 1 | +// | |
| 2 | +// CNLiveVodPayView.swift | |
| 3 | +// metaCode | |
| 4 | +// | |
| 5 | +// Created by zx on 2025/4/1. | |
| 6 | +// 支付页面 | |
| 7 | + | |
| 8 | +import Foundation | |
| 9 | + | |
| 10 | +typealias CNLiveVodPayViewPayBlock = ()->Void | |
| 11 | + | |
| 12 | +class CNLiveVodPayView:UIView{ | |
| 13 | + | |
| 14 | + var payBlock:CNLiveVodPayViewPayBlock? | |
| 15 | + //MARK: - 懒加载 | |
| 16 | + lazy var titleLabel: UILabel = { | |
| 17 | + let titleLbl = UILabel() | |
| 18 | + titleLbl.font = Font_12 | |
| 19 | + titleLbl.textColor = HexColor("#FFFFFF") | |
| 20 | + titleLbl.text = "应版权方要求,本专辑所有用户均需付费" | |
| 21 | + return titleLbl | |
| 22 | + }() | |
| 23 | + lazy var payBtn: UIButton = { | |
| 24 | + let closeBtn = UIButton(type: .custom) | |
| 25 | + closeBtn.backgroundColor = HexColor("#F5A623", alpha: 0.14) | |
| 26 | + closeBtn.layer.borderColor = HexColor("#F5A623")?.cgColor | |
| 27 | + closeBtn.layer.borderWidth = 0.5 | |
| 28 | + closeBtn.clipsToBounds = true | |
| 29 | + closeBtn.layer.cornerRadius = 6 | |
| 30 | + closeBtn.setTitleColor(HexColor("#F5A623"), for: .normal) | |
| 31 | + closeBtn.setTitle("元购买本专辑", for: .normal) | |
| 32 | + closeBtn.titleLabel?.font = Font_12 | |
| 33 | + closeBtn.addTarget(self, action: #selector(payBtnAction), for: .touchUpInside) | |
| 34 | + return closeBtn | |
| 35 | + }() | |
| 36 | + | |
| 37 | + lazy var landscapeBackBtn: UIButton = { | |
| 38 | + let backBtn = UIButton.backItem(imageName: ("mine_header_icon_white_back"), target: self, action: #selector(landscapeBackBtnAction)) | |
| 39 | + backBtn.frame = CGRect(x: 15, y: KStatusBarHeight, width: 60, height: 30) | |
| 40 | + return backBtn | |
| 41 | + }() | |
| 42 | + | |
| 43 | + | |
| 44 | + override init(frame: CGRect) { | |
| 45 | + super.init(frame: frame) | |
| 46 | + self.backgroundColor = HexColor("#000000", alpha: 0.7) | |
| 47 | + self.isUserInteractionEnabled = true | |
| 48 | + self.initUI() | |
| 49 | + self.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(tapAction))) | |
| 50 | + } | |
| 51 | + | |
| 52 | + required init?(coder: NSCoder) { | |
| 53 | + fatalError("init(coder:) has not been implemented") | |
| 54 | + } | |
| 55 | + | |
| 56 | + func initUI(){ | |
| 57 | + | |
| 58 | +// self.addSubview(self.landscapeBackBtn) | |
| 59 | + | |
| 60 | + self.addSubview(self.titleLabel) | |
| 61 | + | |
| 62 | + self.addSubview(self.payBtn) | |
| 63 | + payBtn.snp.makeConstraints { make in | |
| 64 | + make.center.equalToSuperview() | |
| 65 | + make.width.equalTo(117) | |
| 66 | + make.height.equalTo(30) | |
| 67 | + } | |
| 68 | + titleLabel.snp.makeConstraints { make in | |
| 69 | + make.bottom.equalTo(self.payBtn.snp.top).offset(-15) | |
| 70 | + make.centerX.equalToSuperview() | |
| 71 | + } | |
| 72 | + } | |
| 73 | + | |
| 74 | + @objc func payBtnAction(){ | |
| 75 | + //拉起支付 | |
| 76 | + self.payBlock?() | |
| 77 | + } | |
| 78 | + | |
| 79 | + @objc func tapAction(){ | |
| 80 | +// self.isHidden = true | |
| 81 | + } | |
| 82 | + | |
| 83 | + @objc func landscapeBackBtnAction(){ | |
| 84 | + let viewControllers = navigationViewController().viewControllers | |
| 85 | + if viewControllers.count > 1 { | |
| 86 | + if viewControllers.last == self { | |
| 87 | + navigationViewController().popViewController(animated: true) | |
| 88 | + } | |
| 89 | + } | |
| 90 | + } | |
| 91 | +} | |
| 92 | + | ... | ... |