jsdw_ios/QuickLocation/Section/Group/CreateGroup/CreateGroupVipPopView.swift

120 lines
3.4 KiB
Swift

//
// CreateGroupVipPopView.swift
// QuickLocation
//
// Created by on 2026/6/3.
//
import UIKit
import RxSwift
import RxCocoa
class CreateGroupVipPopView: UIView {
private static let shared = CreateGroupVipPopView(frame: CGRect(origin: .zero, size: kScreenSize))
var disposeBag = DisposeBag()
static func show() {
guard let superView = kKeyWindow else {
return
}
if CreateGroupVipPopView.shared.superview != nil {
CreateGroupVipPopView.shared.removeFromSuperview()
CreateGroupVipPopView.shared.bgView.frame = .zero
}
CreateGroupVipPopView.shared.bgView.alpha = 1
CreateGroupVipPopView.shared.bgView.frame = CGRect(x: 0, y: 0, width: kScreenWidth, height: kScreenHeight)
superView.addSubview(CreateGroupVipPopView.shared)
superView.bringSubviewToFront(CreateGroupVipPopView.shared)
UIView.animate(withDuration: 0.25) {
CreateGroupVipPopView.shared.bgView.alpha = 1
}
}
///
static func dismiss() {
guard CreateGroupVipPopView.shared.superview != nil else { return }
UIView.animate(withDuration: 0.25, delay: 0, options: [.curveEaseIn]) {
CreateGroupVipPopView.shared.bgView.alpha = 0
} completion: { _ in
CreateGroupVipPopView.shared.removeFromSuperview()
}
}
private func setupRx() {
upgradedBtn.rx.tap.subscribe(onNext: { _ in
CreateGroupVipPopView.dismiss()
AppRouter.push(Route.vipRecharge)
}).disposed(by: disposeBag)
closeBtn.rx.tap.subscribe(onNext: { _ in
CreateGroupVipPopView.dismiss()
}).disposed(by: disposeBag)
}
private lazy var bgView: UIView = {
let view = UIView()
view.backgroundColor = .black.withAlphaComponent(0.5)
return view
}()
lazy var vipImgView: UIImageView = {
let view = UIImageView()
view.image = UIImage(named: "Group/vip_pop")
return view
}()
lazy var upgradedBtn: UIButton = {
let btn = UIButton(type: .custom)
btn.backgroundColor = .clear
btn.setBackgroundImage(UIImage(named: "Group/upgrade_bg"), for: .normal)
return btn
}()
lazy var closeBtn: UIButton = {
let btn = UIButton(type: .custom)
btn.backgroundColor = .clear
btn.setBackgroundImage(UIImage(named: "Group/close"), for: .normal)
btn.extendEdgeInsets = UIEdgeInsets(top: 10, left: 100, bottom: 100, right: 100)
return btn
}()
// MARK: - Init
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = .clear
addSubview(bgView)
bgView.addSubview(vipImgView)
bgView.addSubview(upgradedBtn)
bgView.addSubview(closeBtn)
vipImgView.layoutChain
.centerY()
.edgesHorzontal(25)
.heightToWidth(814/648)
upgradedBtn.layoutChain
.topToBottomOfView(vipImgView, offset: -20)
.centerX()
.width(240)
.height(60)
closeBtn.layoutChain
.topToBottomOfView(upgradedBtn, offset: 15)
.centerX()
.width(22)
.height(22)
setupRx()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}