This commit is contained in:
zeng 2025-04-27 14:44:48 +08:00
parent 38edfeb022
commit d7a2582c86
12 changed files with 164 additions and 3 deletions

View File

@ -224,5 +224,13 @@ extension UIColor {
static func colorFFD28F(alpha: CGFloat = 1) -> UIColor { static func colorFFD28F(alpha: CGFloat = 1) -> UIColor {
return color(hex: 0xFFD28F, alpha: alpha) return color(hex: 0xFFD28F, alpha: alpha)
} }
static func colorFFFFC8(alpha: CGFloat = 1) -> UIColor {
return color(hex: 0xFFFFC8, alpha: alpha)
}
static func colorF76359(alpha: CGFloat = 1) -> UIColor {
return color(hex: 0xF76359, alpha: alpha)
}
} }

View File

@ -0,0 +1,53 @@
//
// SPGradientLabel.swift
// MoviaBox
//
// Created by on 2025/4/27.
//
import UIKit
class SPGradientLabel: UILabel {
private(set) var gradientLayer: CAGradientLayer = {
//
let gradient = CAGradientLayer()
gradient.colors = [
UIColor.red.cgColor,
UIColor.blue.cgColor
]
gradient.startPoint = CGPoint(x: 0.5, y: 0)
gradient.endPoint = CGPoint(x: 0.5, y: 1)
gradient.locations = [0, 1]
return gradient
}()
override init(frame: CGRect) {
super.init(frame: frame)
layer.addSublayer(gradientLayer)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func layoutSubviews() {
super.layoutSubviews()
gradientLayer.frame = bounds
//
let textLayer = CATextLayer()
textLayer.string = attributedText ?? NSAttributedString(string: text ?? "")
textLayer.frame = bounds
textLayer.alignmentMode = .center
textLayer.contentsScale = UIScreen.main.scale
gradientLayer.mask = textLayer
}
}

View File

@ -28,15 +28,24 @@ class SPMineMemberView: UIView {
//MARK: UI //MARK: UI
private lazy var bgImageView: UIImageView = { private lazy var bgImageView: UIImageView = {
let imageView = UIImageView() let imageView = UIImageView()
imageView.image = UIImage(named: "member_bg_image_01") // imageView.image = UIImage(named: "member_bg_image_01")
imageView.image = UIImage(named: "member_bg_image_02")
imageView.contentMode = .scaleToFill
return imageView return imageView
}() }()
private lazy var noView: SPMineMemberNoView = { private lazy var noView: SPMineMemberNoView = {
let view = SPMineMemberNoView() let view = SPMineMemberNoView()
view.isHidden = true
return view return view
}() }()
private lazy var yesView: SPMineMemberYesView = {
let view = SPMineMemberYesView()
return view
}()
override init(frame: CGRect) { override init(frame: CGRect) {
super.init(frame: frame) super.init(frame: frame)
@ -55,6 +64,7 @@ extension SPMineMemberView {
private func _setupUI() { private func _setupUI() {
addSubview(bgImageView) addSubview(bgImageView)
addSubview(noView) addSubview(noView)
addSubview(yesView)
let width = kSPScreenWidth - 32 let width = kSPScreenWidth - 32
bgImageView.snp.makeConstraints { make in bgImageView.snp.makeConstraints { make in
@ -68,6 +78,10 @@ extension SPMineMemberView {
make.edges.equalTo(bgImageView) make.edges.equalTo(bgImageView)
} }
yesView.snp.makeConstraints { make in
make.edges.equalTo(bgImageView)
}
} }
} }

View File

@ -0,0 +1,64 @@
//
// SPMineMemberYesView.swift
// MoviaBox
//
// Created by on 2025/4/27.
//
import UIKit
class SPMineMemberYesView: UIView {
private lazy var iconImageView: UIImageView = {
let imageView = UIImageView(image: UIImage(named: "vip_icon_02"))
return imageView
}()
private lazy var titleLabel: UILabel = {
let label = SPGradientLabel()
label.gradientLayer.colors = [UIColor.colorFFFFC8().cgColor, UIColor.colorF76359().cgColor]
label.font = .fontMedium(ofSize: 18)
label.text = "VIP"
return label
}()
override init(frame: CGRect) {
super.init(frame: frame)
_setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func layoutSubviews() {
super.layoutSubviews()
// titleLabelGradientLayer.frame = titleLabel.bounds
}
}
extension SPMineMemberYesView {
private func _setupUI() {
addSubview(iconImageView)
addSubview(titleLabel)
iconImageView.snp.makeConstraints { make in
make.left.equalToSuperview().offset(3)
make.top.equalToSuperview().offset(6)
}
titleLabel.snp.makeConstraints { make in
make.left.equalTo(iconImageView.snp.right).offset(-5)
make.centerY.equalTo(iconImageView)
}
}
}

View File

@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "image 27@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "image 27@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "Frame 208@2x.png", "filename" : "Frame_208@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "Frame 208@3x.png", "filename" : "Frame_208@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 351 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 KiB