Music_Player3/relax.offline.mp3.music/MP/MPPositive/Views/Home/MPPositive_HomeSingleCollectionViewCell.swift
2024-07-05 17:25:49 +08:00

86 lines
3.0 KiB
Swift

//
// MPPositive_HomeSingleCollectionViewCell.swift
// relax.offline.mp3.music
//
// Created by Mr.Zhou on 2024/7/4.
//
import UIKit
class MPPositive_HomeSingleCollectionViewCell: UICollectionViewCell {
///
private lazy var coverImageView:UIImageView = {
let imageView:UIImageView = .init()
imageView.contentMode = .scaleAspectFill
imageView.layer.masksToBounds = true
imageView.layer.cornerRadius = 10*width
return imageView
}()
///
private lazy var titleLabel:UILabel = createLabel(font: .systemFont(ofSize: 14*width, weight: .regular), textColor: .white, textAlignment: .left)
///
private lazy var subtitleLabel:UILabel = createLabel(font: .systemFont(ofSize: 12*width, weight: .regular), textColor: .init(hex: "#FFFFFF", alpha: 0.6), textAlignment: .left)
///
private lazy var moreBtn:UIButton = {
let btn:UIButton = .init()
btn.setBackgroundImage(UIImage(named: "Song_More'logo"), for: .normal)
btn.addTarget(self, action: #selector(moreActionClick(_ :)), for: .touchUpInside)
return btn
}()
var moreBlock:(() -> Void)?
var itemViewModel:MPPositive_BrowseItemViewModel!{
didSet{
itemViewModel.setUrltoImage(coverImageView)
titleLabel.text = itemViewModel.title
subtitleLabel.text = itemViewModel.subtitle
}
}
override init(frame: CGRect) {
super.init(frame: frame)
confirgue()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
private func confirgue() {
backgroundColor = .clear
layer.masksToBounds = true
layer.cornerRadius = 16*width
addSubview(coverImageView)
coverImageView.snp.makeConstraints { make in
make.width.height.equalTo(58*width)
make.left.equalToSuperview().offset(18*width)
make.centerY.equalToSuperview()
}
addSubview(moreBtn)
moreBtn.snp.makeConstraints { make in
make.width.height.equalTo(24*width)
make.centerY.equalTo(coverImageView.snp.centerY)
make.right.equalToSuperview().offset(-5*width)
}
addSubview(titleLabel)
titleLabel.snp.makeConstraints { make in
make.top.equalTo(coverImageView.snp.top).offset(10*width)
make.left.equalTo(coverImageView.snp.right).offset(12*width)
make.right.equalTo(moreBtn.snp.left).offset(-12*width)
}
addSubview(subtitleLabel)
subtitleLabel.snp.makeConstraints { make in
make.bottom.equalTo(coverImageView.snp.bottom).offset(-10*width)
make.left.right.equalTo(titleLabel)
}
}
//
@objc private func moreActionClick(_ sender:UIButton) {
guard MP_NetWorkManager.shared.netWorkStatu == .reachable else {
MP_HUD.text("Weak connection.", delay: 2.0, completion: nil)
return
}
guard moreBlock != nil else {
return
}
moreBlock!()
}
}