样式修改

This commit is contained in:
zeng 2025-05-16 18:19:04 +08:00
parent 74ad92fe57
commit 6107b37720
12 changed files with 201 additions and 18 deletions

View File

@ -0,0 +1,25 @@
//
// NSNumber+SPAdd.swift
// MoviaBox
//
// Created by on 2025/5/16.
//
import UIKit
extension NSNumber {
func toString(maximumFractionDigits: Int = 10, minimumFractionDigits: Int? = nil, roundingMode: NumberFormatter.RoundingMode? = nil) -> String {
let formatter = NumberFormatter()
formatter.minimumIntegerDigits = 1
formatter.maximumFractionDigits = maximumFractionDigits
if let minimumFractionDigits = minimumFractionDigits {
formatter.minimumFractionDigits = minimumFractionDigits
}
if let roundingMode = roundingMode {
formatter.roundingMode = roundingMode
}
formatter.numberStyle = .none
return formatter.string(from: self) ?? "0"
}
}

View File

@ -488,5 +488,41 @@ extension UIColor {
static func colorFFDD00(alpha: CGFloat = 1) -> UIColor { static func colorFFDD00(alpha: CGFloat = 1) -> UIColor {
return color(hex: 0xFFDD00, alpha: alpha) return color(hex: 0xFFDD00, alpha: alpha)
} }
static func color3E23DE(alpha: CGFloat = 1) -> UIColor {
return color(hex: 0x3E23DE, alpha: alpha)
}
static func color4629F1(alpha: CGFloat = 1) -> UIColor {
return color(hex: 0x4629F1, alpha: alpha)
}
static func color3D1DFF(alpha: CGFloat = 1) -> UIColor {
return color(hex: 0x3D1DFF, alpha: alpha)
}
static func colorDE2326(alpha: CGFloat = 1) -> UIColor {
return color(hex: 0xDE2326, alpha: alpha)
}
static func colorF1298A(alpha: CGFloat = 1) -> UIColor {
return color(hex: 0xF1298A, alpha: alpha)
}
static func colorFF1DE8(alpha: CGFloat = 1) -> UIColor {
return color(hex: 0xFF1DE8, alpha: alpha)
}
static func colorD93845(alpha: CGFloat = 1) -> UIColor {
return color(hex: 0xD93845, alpha: alpha)
}
static func colorFF5528(alpha: CGFloat = 1) -> UIColor {
return color(hex: 0xFF5528, alpha: alpha)
}
static func colorFF9924(alpha: CGFloat = 1) -> UIColor {
return color(hex: 0xFF9924, alpha: alpha)
}
} }

View File

@ -7,10 +7,12 @@
import UIKit import UIKit
import Kingfisher import Kingfisher
//import KingfisherWebP
extension UIImageView { extension UIImageView {
func sp_setImage(url: String?, placeholder: UIImage? = nil, completer: ((_ image: UIImage?, _ url: URL?) -> Void)? = nil) { func sp_setImage(url: String?, placeholder: UIImage? = nil, completer: ((_ image: UIImage?, _ url: URL?) -> Void)? = nil) {
// self.kf.setImage(with: URL(string: url ?? ""), placeholder: placeholder, options: [.processor(WebPProcessor.default)]) { result in
self.kf.setImage(with: URL(string: url ?? ""), placeholder: placeholder, options: nil) { result in self.kf.setImage(with: URL(string: url ?? ""), placeholder: placeholder, options: nil) { result in
switch result { switch result {
case .success(let value): case .success(let value):

View File

@ -13,6 +13,18 @@ class SPHomeExploreCell: SPCollectionViewCell {
didSet { didSet {
coverImageView.sp_setImage(url: model?.image_url) coverImageView.sp_setImage(url: model?.image_url)
titleLabel.text = model?.name titleLabel.text = model?.name
if model?.tag_type == .hot {
markView.isHidden = false
markView.colors = [UIColor.color3E23DE(alpha: 0.17).cgColor, UIColor.color4629F1(alpha: 0.74).cgColor, UIColor.color3D1DFF().cgColor]
markLabel.text = "HOT"
} else if model?.tag_type == .new {
markView.isHidden = false
markView.colors = [UIColor.colorDE2326(alpha: 0.17).cgColor, UIColor.colorF1298A(alpha: 0.74).cgColor, UIColor.colorFF1DE8().cgColor]
markLabel.text = "NEW"
} else {
markView.isHidden = true
}
} }
} }
@ -24,6 +36,22 @@ class SPHomeExploreCell: SPCollectionViewCell {
return imageView return imageView
}() }()
private lazy var markView: SPGradientView = {
let view = SPGradientView()
view.locations = [0, 0.3, 1]
view.startPoint = .init(x: 0, y: 0.7)
view.endPoint = .init(x: 1, y: 0.5)
view.addRadius(topLeft: 0, topRight: 0, bottomLeft: 12, bottomRight: 0)
return view
}()
private lazy var markLabel: UILabel = {
let label = UILabel()
label.font = .fontBold(ofSize: 12)
label.textColor = .colorFFFFFF()
return label
}()
private lazy var titleLabel: UILabel = { private lazy var titleLabel: UILabel = {
let label = UILabel() let label = UILabel()
label.font = .fontRegular(ofSize: 12) label.font = .fontRegular(ofSize: 12)
@ -48,6 +76,8 @@ extension SPHomeExploreCell {
private func _setupUI() { private func _setupUI() {
contentView.addSubview(coverImageView) contentView.addSubview(coverImageView)
coverImageView.addSubview(markView)
markView.addSubview(markLabel)
contentView.addSubview(titleLabel) contentView.addSubview(titleLabel)
coverImageView.snp.makeConstraints { make in coverImageView.snp.makeConstraints { make in
@ -55,6 +85,17 @@ extension SPHomeExploreCell {
make.bottom.equalToSuperview().offset(-36) make.bottom.equalToSuperview().offset(-36)
} }
markView.snp.makeConstraints { make in
make.top.equalToSuperview()
make.right.equalToSuperview()
make.width.equalTo(46)
make.height.equalTo(18)
}
markLabel.snp.makeConstraints { make in
make.center.equalToSuperview()
}
titleLabel.snp.makeConstraints { make in titleLabel.snp.makeConstraints { make in
make.left.equalToSuperview() make.left.equalToSuperview()
make.right.lessThanOrEqualToSuperview() make.right.lessThanOrEqualToSuperview()

View File

@ -13,6 +13,18 @@ class SPHomeShortCell: SPCollectionViewCell {
didSet { didSet {
coverImageView.sp_setImage(url: model?.image_url) coverImageView.sp_setImage(url: model?.image_url)
titleLabel.text = model?.name titleLabel.text = model?.name
if model?.tag_type == .hot {
markView.isHidden = false
markView.colors = [UIColor.color3E23DE(alpha: 0.17).cgColor, UIColor.color4629F1(alpha: 0.74).cgColor, UIColor.color3D1DFF().cgColor]
markLabel.text = "HOT"
} else if model?.tag_type == .new {
markView.isHidden = false
markView.colors = [UIColor.colorDE2326(alpha: 0.17).cgColor, UIColor.colorF1298A(alpha: 0.74).cgColor, UIColor.colorFF1DE8().cgColor]
markLabel.text = "NEW"
} else {
markView.isHidden = true
}
} }
} }
@ -21,6 +33,22 @@ class SPHomeShortCell: SPCollectionViewCell {
return imageView return imageView
}() }()
private lazy var markView: SPGradientView = {
let view = SPGradientView()
view.locations = [0, 0.3, 1]
view.startPoint = .init(x: 0, y: 0.7)
view.endPoint = .init(x: 1, y: 0.5)
view.addRadius(topLeft: 0, topRight: 4, bottomLeft: 12, bottomRight: 0)
return view
}()
private lazy var markLabel: UILabel = {
let label = UILabel()
label.font = .fontBold(ofSize: 12)
label.textColor = .colorFFFFFF()
return label
}()
private lazy var titleLabel: UILabel = { private lazy var titleLabel: UILabel = {
let label = UILabel() let label = UILabel()
label.font = .fontMedium(ofSize: 12) label.font = .fontMedium(ofSize: 12)
@ -47,6 +75,8 @@ class SPHomeShortCell: SPCollectionViewCell {
extension SPHomeShortCell { extension SPHomeShortCell {
private func _setupUI() { private func _setupUI() {
contentView.addSubview(coverImageView) contentView.addSubview(coverImageView)
coverImageView.addSubview(markView)
markView.addSubview(markLabel)
contentView.addSubview(titleLabel) contentView.addSubview(titleLabel)
coverImageView.snp.makeConstraints { make in coverImageView.snp.makeConstraints { make in
@ -54,6 +84,17 @@ extension SPHomeShortCell {
make.bottom.equalToSuperview().offset(-44) make.bottom.equalToSuperview().offset(-44)
} }
markView.snp.makeConstraints { make in
make.top.equalToSuperview().offset(6)
make.right.equalToSuperview().offset(-6)
make.width.equalTo(46)
make.height.equalTo(18)
}
markLabel.snp.makeConstraints { make in
make.center.equalToSuperview()
}
titleLabel.snp.makeConstraints { make in titleLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(8) make.left.equalToSuperview().offset(8)
make.right.lessThanOrEqualToSuperview().offset(-8) make.right.lessThanOrEqualToSuperview().offset(-8)

View File

@ -13,10 +13,17 @@ class SPHomeTrendingCell: SPCollectionViewCell {
didSet { didSet {
coverImageView.sp_setImage(url: model?.image_url) coverImageView.sp_setImage(url: model?.image_url)
titleLabel.text = model?.name titleLabel.text = model?.name
hotView.setTitle("\(model?.watch_total ?? 0)", for: .normal)
if let tag = model?.tag_type, !tag.isEmpty { let watchCount = model?.watch_total ?? 0
tagView.setTitle(tag, for: .normal) if watchCount > 1000 {
let numStr = NSNumber(floatLiteral: CGFloat(watchCount) / 1000).toString(maximumFractionDigits: 1)
hotView.setTitle("\(numStr)K", for: .normal)
} else {
hotView.setTitle("\(watchCount)", for: .normal)
}
if let category = model?.category?.first {
tagView.setTitle(category, for: .normal)
tagView.isHidden = false tagView.isHidden = false
} else { } else {
tagView.isHidden = true tagView.isHidden = true
@ -27,10 +34,23 @@ class SPHomeTrendingCell: SPCollectionViewCell {
var row: Int = 0 { var row: Int = 0 {
didSet { didSet {
let num = row + 1 let num = row + 1
if num < 4 { // if num < 4 {
numBgView.image = UIImage(named: "num_bg_icon_\(num)") // numBgView.image = UIImage(named: "num_bg_icon_\(num)")
} else { // } else {
numBgView.image = UIImage(named: "num_bg_icon_4") // numBgView.image = UIImage(named: "num_bg_icon_4")
// }
switch num {
case 1:
numBgView.colors = [UIColor.colorD93845().cgColor, UIColor.colorD93845(alpha: 0.74).cgColor, UIColor.colorD93845(alpha: 0.17).cgColor]
case 2:
numBgView.colors = [UIColor.colorFF5528().cgColor, UIColor.colorFF5528(alpha: 0.74).cgColor, UIColor.colorFF5528(alpha: 0.17).cgColor]
case 3:
numBgView.colors = [UIColor.colorFF9924().cgColor, UIColor.colorFF9924(alpha: 0.74).cgColor, UIColor.colorFF9924(alpha: 0.17).cgColor]
default:
numBgView.colors = [UIColor.color000000(alpha: 0.45).cgColor, UIColor.color000000(alpha: 0.45).cgColor, UIColor.color000000(alpha: 0.45).cgColor]
} }
numLabel.text = "\(num)" numLabel.text = "\(num)"
@ -45,9 +65,13 @@ class SPHomeTrendingCell: SPCollectionViewCell {
return imageView return imageView
}() }()
private lazy var numBgView: UIImageView = { private lazy var numBgView: SPGradientView = {
let imageView = UIImageView() let view = SPGradientView()
return imageView view.locations = [0, 0.5, 1]
view.startPoint = .init(x: 0.5, y: 0)
view.endPoint = .init(x: 0.5, y: 1)
view.addRadius(topLeft: 0, topRight: 0, bottomLeft: 0, bottomRight: 4)
return view
}() }()
private lazy var numLabel: UILabel = { private lazy var numLabel: UILabel = {
@ -122,6 +146,8 @@ extension SPHomeTrendingCell {
numBgView.snp.makeConstraints { make in numBgView.snp.makeConstraints { make in
make.left.top.equalToSuperview() make.left.top.equalToSuperview()
make.width.equalTo(24)
make.height.equalTo(32)
} }
numLabel.snp.makeConstraints { make in numLabel.snp.makeConstraints { make in

View File

@ -107,7 +107,11 @@ extension SPHomeTrendingView: UICollectionViewDataSource, UICollectionViewDelega
} }
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return dataArr?.count ?? 0 var count = self.dataArr?.count ?? 0
if count > 9 {
count = 9
}
return count
} }
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {

View File

@ -13,6 +13,11 @@ class SPHomeZoomBannerCell: ZKCycleScrollViewCell {
didSet { didSet {
coverImageView.sp_setImage(url: model?.image_url) coverImageView.sp_setImage(url: model?.image_url)
titleLabel.text = model?.name titleLabel.text = model?.name
if model?.tag_type == .new {
iconImageView.isHidden = false
} else {
iconImageView.isHidden = true
}
} }
} }
@ -78,7 +83,7 @@ extension SPHomeZoomBannerCell {
titleLabel.snp.makeConstraints { make in titleLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(15) make.left.equalToSuperview().offset(15)
make.right.lessThanOrEqualToSuperview().offset(-15) make.right.lessThanOrEqualToSuperview().offset(-40)
make.centerY.equalToSuperview() make.centerY.equalToSuperview()
} }
} }

View File

@ -182,10 +182,6 @@ class SPPlayerListViewController: SPViewController {
self.collectionView.setContentOffset(CGPoint(x: 0, y: floor(offset)), animated: false) self.collectionView.setContentOffset(CGPoint(x: 0, y: floor(offset)), animated: false)
} }
} }
if currentIndexPath.row <= 2 {
// self.loadUpMoreData()
}
} }
func pause() { func pause() {

View File

@ -10,6 +10,11 @@ import SmartCodable
class SPShortModel: SPModel, SmartCodable { class SPShortModel: SPModel, SmartCodable {
enum TagType: String, SmartCaseDefaultable {
case hot = "hot"
case new = "new"
}
var id: String? var id: String?
var all_coins: String? var all_coins: String?
var buy_type: String? var buy_type: String?
@ -25,8 +30,9 @@ class SPShortModel: SPModel, SmartCodable {
var short_id: String? var short_id: String?
var short_play_id: String? var short_play_id: String?
var short_play_video_id: String? var short_play_video_id: String?
var tag_type: String? var tag_type: TagType?
var video_info: SPVideoInfoModel? var video_info: SPVideoInfoModel?
var category: [String]?
/// ///
var watch_total: Int? var watch_total: Int?
var current_episode: String? var current_episode: String?

View File

@ -26,6 +26,7 @@ target 'MoviaBox' do
pod 'KTVHTTPCache' #视频缓存 pod 'KTVHTTPCache' #视频缓存
pod 'HWPanModal' #底部弹出控制器 pod 'HWPanModal' #底部弹出控制器
pod 'Kingfisher' #图片加载 pod 'Kingfisher' #图片加载
# pod 'KingfisherWebP'
pod 'EmptyDataSet-Swift' #空数据页面 pod 'EmptyDataSet-Swift' #空数据页面
pod 'ReachabilitySwift' #网络状态监控 pod 'ReachabilitySwift' #网络状态监控
pod 'WMZPageController' #分页控制器 pod 'WMZPageController' #分页控制器

View File

@ -98,6 +98,6 @@ SPEC CHECKSUMS:
YYKit: 7cda43304a8dc3696c449041e2cb3107b4e236e7 YYKit: 7cda43304a8dc3696c449041e2cb3107b4e236e7
ZFPlayer: 5cf39e8d9f0c2394a014b0db4767b5b5a6bffe13 ZFPlayer: 5cf39e8d9f0c2394a014b0db4767b5b5a6bffe13
PODFILE CHECKSUM: 1e8174e48a7218cf3eed0a059ee987d0638ab131 PODFILE CHECKSUM: de731c7a1ac66210ab6396d96271f2c62639627f
COCOAPODS: 1.16.2 COCOAPODS: 1.16.2