Commit 27d2a238 authored by CZ1004's avatar CZ1004

文件位置修改

parent 09821a35
//
// ChargeViewController.swift
// PhoneManager
//
// Created by edy on 2025/3/26.
//
import UIKit
class ChargeViewController:BaseViewController {
lazy var detailsBtn:UIButton = {
let sview:UIButton = UIButton()
sview.setImage(UIImage(named: "ic_details_charging"), for: .normal)
sview.width = 20
sview.height = 20
sview.x = view.width - sview.width - 15
sview.centerY = navCenterY
return sview
}()
lazy var chargeView:ChargeView = {
let cY:CGFloat = titleView.height + titleView.y
let sview:ChargeView = ChargeView(frame: CGRect(x: 0, y: cY, width: view.width, height: view.height - cY))
sview.callBack = {[weak self] model in
guard let self else {return}
DispatchQueue.main.async {[weak self] in
guard let self else {return}
if let cModel = model as? ChargeViewCollectionModel {
let vc:ChargeInfoViewController = ChargeInfoViewController(model: cModel, type: ChargeInfoViewController.ChargeInfoType.setting)
self.navigationController?.pushViewController(vc, animated: true)
}
}
}
return sview
}()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .green
titleView.addSubview(detailsBtn)
view.addSubview(chargeView)
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.barHidden = false
}
}
//
// ChargeInfoViewController.swift
// PhoneManager
//
// Created by edy on 2025/3/26.
//
import UIKit
class ChargeInfoViewController:BaseViewController {
enum ChargeInfoType {
case setting
case charge
}
var model:ChargeDataModel?
var type:ChargeInfoType?
var isShowBack:Bool? {
didSet {
changeTitleView()
}
}
var isShowSettingView:Bool? {
didSet {
changeSettingViews()
}
}
lazy var backImageView:ChargeInfoBackView = {
let sview:ChargeInfoBackView = ChargeInfoBackView(frame: view.bounds, model: self.model!)
return sview
}()
lazy var settingView:ChargeInfoSettingView = {
let sview:ChargeInfoSettingView = ChargeInfoSettingView(frame: CGRect(x: 0, y: 0, width: view.width, height: 78 + safeHeight))
sview.isHidden = type == .setting ? false : true
return sview
}()
init(model: ChargeDataModel?,type:ChargeInfoType?) {
self.type = type
self.model = model
super.init(nibName: nil, bundle: nil)
}
// 由于继承自 UIViewController,必须实现这个必需的构造器
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override func viewDidLoad() {
super.viewDidLoad()
self.barHidden = true
titleView.model.title = ""
titleView.lineView.isHidden = true
titleView.backgroundColor = .clear
if type == .charge {
DispatchQueue.main.asyncAfter(deadline: .now() + 3, execute: {[weak self] in
guard let self else {return}
isShowBack = true
})
}
}
override func addViews() {
view.addSubview(backImageView)
view.addSubview(titleView)
view.addSubview(settingView)
}
func changeSettingViews() {
if type == .charge {
return
}
DispatchQueue.main.async {
if !(self.isShowSettingView ?? false) {
self.settingView.isHidden = false
}
UIView.animate(withDuration: 0.3, animations: {[weak self] in
guard let self else {return}
self.settingView.alpha = (self.isShowSettingView ?? false) ? 0 : 1
}, completion: {[weak self] _ in
guard let self else {return}
self.settingView.isHidden = self.isShowSettingView ?? false
})
}
}
func changeTitleView() {
if !(self.isShowBack ?? false) {
self.titleView.isHidden = false
}
UIView.animate(withDuration: 0.3, animations: {[weak self] in
guard let self else {return}
self.titleView.alpha = (self.isShowBack ?? false) ? 0 : 1
}, completion: {[weak self] _ in
guard let self else {return}
self.titleView.isHidden = self.isShowBack ?? false
})
}
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
backImageView.snp.makeConstraints { make in
make.center.width.height.equalToSuperview()
}
settingView.snp.makeConstraints { make in
make.bottom.width.centerX.equalToSuperview()
make.height.equalTo(safeHeight + (safeHeight == 0 ? 78 : 68))
}
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
isShowSettingView = !(isShowSettingView ?? false)
isShowBack = !(isShowBack ?? false)
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment