CNLiveAlbumCell.swift
6.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
//
// CNLiveAlbumCell.swift
// metaCode
//
// Created by zx on 2024/1/8.
//
import Foundation
import QMUIKit
typealias CNLiveAlbumCellEnterBlock = (_ albumModel:CNLiveAlbumModel)->Void;
class CNLiveAlbumCell:UITableViewCell{
var enterBlock:CNLiveAlbumCellEnterBlock?
var albumModelArr:Array<CNLiveAlbumListModel>?
var isDetail:Bool = false
var cellType:CNLiveHomePageCellType = .course
var _albumMsgModel : CNLiveAlbumMsgModel?
var albumMsgModel : CNLiveAlbumMsgModel? {
get{
_albumMsgModel
}
set{
_albumMsgModel = newValue!
self.setupNewUIMsgModel(model: _albumMsgModel!, isDetail: self.isDetail)
}
}
//AlbumModel
var _albumModel : CNLiveAlbumModel?
var albumModel : CNLiveAlbumModel? {
get{
_albumModel
}
set{
_albumModel = newValue!
self.setupNewUI(model: _albumModel!)
}
}
//MARK: - 懒加载
lazy var iconImgView :UIImageView = {
let iconImgView = UIImageView(frame: CGRect(x: 15, y: 15, width: 45, height: 45))
iconImgView.layer.cornerRadius = 5
iconImgView.clipsToBounds = true
iconImgView.contentMode = .scaleAspectFill
return iconImgView
}()
///标题
lazy var titleLabl: UILabel = {
let titleLabel = UILabel.init(frame: CGRectMake(self.iconImgView.right+15, 15, KSreenWidth-(self.iconImgView.right+15)-80, 21))
titleLabel.textColor = HexColor("#333333")
titleLabel.textAlignment = .left
titleLabel.font = Font_15
titleLabel.text = "标题"
return titleLabel
}()
///副标题
lazy var subTitleLabel: UILabel = {
let titleLabel = UILabel.init(frame: CGRectMake(self.iconImgView.right+15, self.titleLabl.bottom+5, self.titleLabl.width, 17))
titleLabel.textColor = HexColor("#999999")
titleLabel.textAlignment = .left
titleLabel.font = Font_12
titleLabel.text = "共68集"
return titleLabel
}()
let playBtnSubLayer = "playBtnSubLayer"
lazy var playBtn: QMUIButton = {
let playBtn = QMUIButton.init(type: .custom)
playBtn.frame = CGRect(x: KSreenWidth-80, y: 0, width: 65, height: 26)
playBtn.centerY = self.iconImgView.centerY
playBtn.layer.cornerRadius = 13
playBtn.clipsToBounds = true
playBtn.setTitle("播放", for: .normal)
playBtn.setTitleColor(HexColor("#FFFFFF"), for: .normal)
playBtn.titleLabel?.font = Font_13
playBtn.addTarget(self, action: #selector(playBtnAction), for: .touchUpInside)
let gradient = CAGradientLayer()
gradient.frame = playBtn.bounds
gradient.colors = [HexColor("#67C5FF")!.cgColor, HexColor("#609AFF")!.cgColor]
gradient.locations = [0, 1]
gradient.startPoint = CGPoint(x: 0, y: 0.5)
gradient.endPoint = CGPoint(x: 0.5, y: 0.5)
gradient.name = playBtnSubLayer
playBtn.layer.insertSublayer(gradient, at: 0)
return playBtn
}()
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
self.selectionStyle = .none
self.contentView.addSubview(self.iconImgView)
self.contentView.addSubview(self.titleLabl)
self.contentView.addSubview(self.subTitleLabel)
self.contentView.addSubview(self.playBtn)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setupNewUI(model:CNLiveAlbumModel){
if model.model == kCNDownSlideContentsModelModel1 || model.model == kCNDownSlideContentsModelModel2 || model.model == kCNDownSlideContentsModelModel3 || model.model == kCNDownSlideContentsModelModel4{
//课程-跳转h5网页
self.cellType = .course
self.playBtn.setTitle("进入", for: .normal)
}else if model.model == kCNDownSlideContentsModelModelAlbum_ugc{
//短剧-跳转短剧播放页
self.cellType = .playlet
self.playBtn.setTitle("播放", for: .normal)
}else if model.model == kCNDownSlideContentsModelModelServing{
self.cellType = .course
self.playBtn.setTitle("进入", for: .normal)
}else if model.model == kCNDownSlideContentsModelModelAlbum_video{
self.cellType = .courseToMyCurriculum
self.playBtn.setTitle("进入", for: .normal)
}else{
}
self.titleLabl.text = model.title
self.subTitleLabel.text = model.subTitle
self.iconImgView.kf.setImage(with: URL(string: model.poster))
self.titleLabl.width = KSreenWidth-(self.iconImgView.right+15)-80
self.subTitleLabel.width = self.titleLabl.width
self.playBtn.left = KSreenWidth-80
}
func setupNewUIMsgModel(model:CNLiveAlbumMsgModel,isDetail:Bool){
//在追短剧model
self.titleLabl.text = model.albumName
self.subTitleLabel.text = model.desc
self.iconImgView.kf.setImage(with: URL(string: model.albumImg))
self.titleLabl.width = KSreenWidth-(self.iconImgView.right+15)-80-30
self.subTitleLabel.width = self.titleLabl.width
if self.isDetail{
self.playBtn.left = KSreenWidth-80
}else{
self.playBtn.left = KSreenWidth-80-30
}
}
@objc func playBtnAction(){
var aid = ""
if self.albumModel != nil{
aid = self.albumModel!.contentId
}else if self.albumMsgModel != nil{
aid = self.albumMsgModel!.albumId
}else{
aid = ""
}
if (self.albumModel != nil){
if (self.albumModel?.model == kCNDownSlideContentsModelModel1 || self.albumModel?.model == kCNDownSlideContentsModelModel2 || self.albumModel?.model == kCNDownSlideContentsModelModel3 || self.albumModel?.model == kCNDownSlideContentsModelModel4){
//课程-跳转h5网页
self.enterBlock!(self.albumModel!)
}else if self.albumModel?.model == kCNDownSlideContentsModelModelAlbum_ugc{
//短剧-跳转短剧播放页
CNLiveDownSlideTool.pushShortVideoController(contentId: aid, navigationVC: navigationViewController().visibleViewController?.navigationController, slideModel: nil)
}else if self.albumModel?.model == kCNDownSlideContentsModelModelAlbum_video{
//课程-跳转h5视频专辑页
self.enterBlock!(self.albumModel!)
}else{
}
}else if (self.albumMsgModel != nil){
//短剧-跳转短剧播放页
CNLiveDownSlideTool.pushShortVideoController(contentId: aid, navigationVC: navigationViewController().visibleViewController?.navigationController, slideModel: nil)
}
}
}