1.0版本修改
This commit is contained in:
parent
38edfeb022
commit
8bb7aac8d1
@ -13,7 +13,6 @@ class SPMineHeaderView: UIView {
|
||||
var height: CGFloat = kSPStatusbarHeight + 108
|
||||
|
||||
var stackHeight = 0.0
|
||||
stackHeight += memberView.intrinsicContentSize.height
|
||||
|
||||
if playHistoryArr?.count ?? 0 > 0 {
|
||||
stackHeight += self.stackView.spacing
|
||||
@ -95,32 +94,12 @@ class SPMineHeaderView: UIView {
|
||||
return view
|
||||
}()
|
||||
|
||||
///会员视图
|
||||
private lazy var memberView: SPMineMemberView = {
|
||||
let view = SPMineMemberView()
|
||||
return view
|
||||
}()
|
||||
|
||||
///播放记录
|
||||
private lazy var playHistoryView: SPMinePlayHistoryView = {
|
||||
let view = SPMinePlayHistoryView()
|
||||
return view
|
||||
}()
|
||||
|
||||
private lazy var loginButton: UIButton = {
|
||||
let button = UIButton(type: .custom)
|
||||
button.setTitle("Log in".localized, for: .normal)
|
||||
button.setTitleColor(.colorFFFFFF(), for: .normal)
|
||||
button.titleLabel?.font = .fontMedium(ofSize: 16)
|
||||
button.setBackgroundImage(UIImage(color: .colorFFFFFF(alpha: 0.23)), for: .normal)
|
||||
button.layer.cornerRadius = 15
|
||||
button.layer.masksToBounds = true
|
||||
button.layer.borderWidth = 1
|
||||
button.layer.borderColor = UIColor.colorFFFFFF().cgColor
|
||||
button.addTarget(self, action: #selector(handleLoginButton), for: .touchUpInside)
|
||||
return button
|
||||
}()
|
||||
|
||||
|
||||
override init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
@ -135,8 +114,6 @@ class SPMineHeaderView: UIView {
|
||||
private func updateStackViewLayout() {
|
||||
stackView.removeAllArrangedSubview()
|
||||
|
||||
stackView.addArrangedSubview(memberView)
|
||||
|
||||
if let arr = playHistoryArr, arr.count > 0 {
|
||||
stackView.addArrangedSubview(playHistoryView)
|
||||
}
|
||||
@ -150,14 +127,6 @@ extension SPMineHeaderView {
|
||||
|
||||
}
|
||||
|
||||
@objc private func handleLoginButton() {
|
||||
let vc = SPLoginViewController()
|
||||
let nav = SPNavigationController(rootViewController: vc)
|
||||
nav.modalPresentationStyle = .fullScreen
|
||||
|
||||
self.viewController?.present(nav, animated: true)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
extension SPMineHeaderView {
|
||||
@ -167,7 +136,6 @@ extension SPMineHeaderView {
|
||||
addSubview(nicknameLabel)
|
||||
addSubview(idLabel)
|
||||
addSubview(copyButton)
|
||||
addSubview(loginButton)
|
||||
addSubview(stackView)
|
||||
|
||||
avatarImageView.snp.makeConstraints { make in
|
||||
@ -195,15 +163,6 @@ extension SPMineHeaderView {
|
||||
make.width.equalTo(copyWidth)
|
||||
}
|
||||
|
||||
let loginWidth = (loginButton.currentTitle?.size(font: loginButton.titleLabel?.font ?? .fontRegular(ofSize: 12)).width ?? 0) + 28
|
||||
|
||||
loginButton.snp.makeConstraints { make in
|
||||
make.right.equalToSuperview().offset(-16)
|
||||
make.height.equalTo(30)
|
||||
make.width.equalTo(loginWidth)
|
||||
make.centerY.equalTo(avatarImageView)
|
||||
}
|
||||
|
||||
stackView.snp.makeConstraints { make in
|
||||
make.left.right.equalToSuperview()
|
||||
make.top.equalToSuperview().offset(kSPStatusbarHeight + 108)
|
||||
|
@ -1,107 +0,0 @@
|
||||
//
|
||||
// SPMineMemberNoView.swift
|
||||
// MoviaBox
|
||||
//
|
||||
// Created by 佳尔 on 2025/4/25.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
class SPMineMemberNoView: UIView {
|
||||
|
||||
|
||||
//MARK: UI属性
|
||||
private lazy var iconImageView: UIImageView = {
|
||||
let imageView = UIImageView(image: UIImage(named: "vip_icon_01"))
|
||||
return imageView
|
||||
}()
|
||||
|
||||
private lazy var titleLabel: UILabel = {
|
||||
let label = UILabel()
|
||||
label.text = "You are not a member yet".localized
|
||||
label.textColor = .colorBBB9B3()
|
||||
label.font = .fontMedium(ofSize: 16)
|
||||
label.adjustsFontSizeToFitWidth = true
|
||||
return label
|
||||
}()
|
||||
|
||||
private lazy var activateButton: UIButton = {
|
||||
let button = JXButton(type: .custom)
|
||||
button.leftAnyRightmargin = 13
|
||||
button.setTitle("Activate".localized, for: .normal)
|
||||
button.setTitleColor(.colorFFD791(), for: .normal)
|
||||
button.jx_font = .fontMedium(ofSize: 14)
|
||||
button.layer.cornerRadius = 14
|
||||
button.layer.masksToBounds = true
|
||||
button.layer.borderWidth = 1
|
||||
button.layer.borderColor = UIColor.colorFFD791().cgColor
|
||||
button.backgroundColor = .color262014()
|
||||
return button
|
||||
}()
|
||||
|
||||
private lazy var textLabel1: UILabel = {
|
||||
let label = UILabel()
|
||||
label.font = .fontMedium(ofSize: 12)
|
||||
label.textColor = .colorA69B89()
|
||||
label.text = "Members can enjoy".localized
|
||||
return label
|
||||
}()
|
||||
|
||||
private lazy var textLabel2: UILabel = {
|
||||
let label = UILabel()
|
||||
label.font = .fontMedium(ofSize: 12)
|
||||
label.textColor = .colorFFD28F()
|
||||
label.text = "Unlimited access to all series".localized
|
||||
return label
|
||||
}()
|
||||
|
||||
|
||||
override init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
_setupUI()
|
||||
}
|
||||
|
||||
required init?(coder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
extension SPMineMemberNoView {
|
||||
|
||||
private func _setupUI() {
|
||||
addSubview(iconImageView)
|
||||
addSubview(titleLabel)
|
||||
addSubview(activateButton)
|
||||
addSubview(textLabel1)
|
||||
addSubview(textLabel2)
|
||||
|
||||
iconImageView.snp.makeConstraints { make in
|
||||
make.left.equalToSuperview().offset(12)
|
||||
make.top.equalToSuperview().offset(15)
|
||||
}
|
||||
|
||||
titleLabel.snp.makeConstraints { make in
|
||||
make.left.equalTo(iconImageView.snp.right).offset(4)
|
||||
make.centerY.equalTo(iconImageView)
|
||||
make.right.lessThanOrEqualToSuperview().offset(-12)
|
||||
}
|
||||
|
||||
activateButton.snp.makeConstraints { make in
|
||||
make.right.equalToSuperview().offset(-18)
|
||||
make.bottom.equalToSuperview().offset(-14)
|
||||
make.height.equalTo(28)
|
||||
}
|
||||
|
||||
textLabel1.snp.makeConstraints { make in
|
||||
make.left.equalToSuperview().offset(12)
|
||||
make.bottom.equalTo(textLabel2.snp.top).offset(-kSPMainW(5))
|
||||
}
|
||||
|
||||
textLabel2.snp.makeConstraints { make in
|
||||
make.left.equalTo(textLabel1)
|
||||
make.bottom.equalToSuperview().offset(-kSPMainW(12))
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -1,73 +0,0 @@
|
||||
//
|
||||
// SPMineMemberView.swift
|
||||
// MoviaBox
|
||||
//
|
||||
// Created by 佳尔 on 2025/4/25.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
class SPMineMemberView: UIView {
|
||||
|
||||
|
||||
override var intrinsicContentSize: CGSize {
|
||||
let width = kSPScreenWidth - 32
|
||||
return CGSize(width: width, height: width * bgRatio)
|
||||
}
|
||||
|
||||
///背景图宽高比
|
||||
var bgRatio: CGFloat {
|
||||
let imageSize = bgImageView.image?.size ?? .zero
|
||||
if imageSize == .zero {
|
||||
return 1
|
||||
} else {
|
||||
return imageSize.height / imageSize.width
|
||||
}
|
||||
}
|
||||
|
||||
//MARK: UI属性
|
||||
private lazy var bgImageView: UIImageView = {
|
||||
let imageView = UIImageView()
|
||||
imageView.image = UIImage(named: "member_bg_image_01")
|
||||
return imageView
|
||||
}()
|
||||
|
||||
private lazy var noView: SPMineMemberNoView = {
|
||||
let view = SPMineMemberNoView()
|
||||
return view
|
||||
}()
|
||||
|
||||
override init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
|
||||
_setupUI()
|
||||
}
|
||||
|
||||
required init?(coder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
extension SPMineMemberView {
|
||||
|
||||
private func _setupUI() {
|
||||
addSubview(bgImageView)
|
||||
addSubview(noView)
|
||||
|
||||
let width = kSPScreenWidth - 32
|
||||
bgImageView.snp.makeConstraints { make in
|
||||
make.top.equalToSuperview()
|
||||
make.left.equalToSuperview().offset(16)
|
||||
make.centerX.equalToSuperview()
|
||||
make.height.equalTo(width * bgRatio)
|
||||
}
|
||||
|
||||
noView.snp.makeConstraints { make in
|
||||
make.edges.equalTo(bgImageView)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "Group 57@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "Group 57@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 3.9 KiB |
Binary file not shown.
Before Width: | Height: | Size: 7.3 KiB |
@ -1,22 +0,0 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "Group 63@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "Group 63@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 114 KiB |
Binary file not shown.
Before Width: | Height: | Size: 239 KiB |
@ -1,22 +0,0 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "Frame 208@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "Frame 208@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 174 KiB |
Binary file not shown.
Before Width: | Height: | Size: 351 KiB |
@ -50,11 +50,6 @@
|
||||
"Youth Civilization Convention" = "Youth Civilization Convention";
|
||||
"List of Third-Party Sharing of Personal Information" = "List of Third-Party Sharing of Personal Information";
|
||||
"Explicit List of Personal Information Collection" = "Explicit List of Personal Information Collection";
|
||||
"Log in" = "Log in";
|
||||
"You are not a member yet" = "You are not a member yet";
|
||||
"Activate" = "Activate";
|
||||
"Members can enjoy" = "Members can enjoy";
|
||||
"Unlimited access to all series" = "Unlimited access to all series";
|
||||
|
||||
|
||||
"kLoginAgreementText" = "By continuing, you agree to the User Agreement and Privacy Policy";
|
||||
|
Loading…
x
Reference in New Issue
Block a user