Commit fe59c4f0 authored by CZ1004's avatar CZ1004

项目位置

parent 1cc0c07d
//
// CompressQualityController.swift
// PhoneManager
//
// Created by edy on 2025/4/2.
//
import Foundation
class CompressQualityController : BaseViewController{
var model : ResourceModel? {
didSet{
let image = PhotoAndVideoMananger.mananger.getImageFromAssetID(id: model!.ident)
self.imageView.image = image
}
}
private var compressNav:CompressNavView?
lazy var imageView: UIImageView = {
let imageView = UIImageView()
imageView.clipsToBounds = true
imageView.layer.cornerRadius = 12
imageView.backgroundColor = .clear
return imageView
}()
lazy var tipLabel: UILabel = {
let label = UILabel()
label.text = "Select photo quality after compression"
label.textAlignment = .left
label.font = UIFont.systemFont(ofSize: 16, weight: .bold)
label.backgroundColor = .clear
return label
}()
lazy var detailTiplabel: UILabel = {
let label = UILabel()
label.text = "You've selected 2 out of 253 photos to compress."
label.textAlignment = .left
label.font = UIFont.systemFont(ofSize: 12, weight: .regular)
label.backgroundColor = .clear
return label
}()
lazy var lowQualityView: QualityView = {
let view = QualityView()
view.selectedImageView.image = UIImage(named: "ic_unsel_com")
return view
}()
lazy var mediumQualityView: QualityView = {
let view = QualityView()
view.tipLabel.text = "Medium quality"
view.detailTiplabel.text = "Compress up to 50% of the size"
return view
}()
lazy var highQualityView: QualityView = {
let view = QualityView()
view.tipLabel.text = "High quality"
view.detailTiplabel.text = "Compress up to 20% of the size"
return view
}()
lazy var submitButton : UIButton = {
let view = UIButton()
view.setTitle("Compress", for: UIControl.State.normal)
view.setTitleColor(UIColor(red: 1, green: 1, blue: 1, alpha: 1), for: .normal)
view.clipsToBounds = true
view.layer.cornerRadius = 23
view.backgroundColor = UIColor(red: 0, green: 0.51, blue: 1, alpha: 1)
view.addTarget(self, action: #selector(submitAction), for: .touchUpInside)
return view
}()
func setUI(){
compressNav = CompressNavView(frame: CGRect(x: 0, y: 0, width: self.view.width, height: statusBarHeight + 44))
self.view.addSubview(compressNav!)
compressNav?.snp.makeConstraints({ make in
make.top.centerX.width.equalToSuperview()
make.height.equalTo(statusBarHeight + 44)
})
self.view.addSubview(self.imageView)
self.view.addSubview(self.tipLabel)
self.view.addSubview(self.detailTiplabel)
self.view.addSubview(self.lowQualityView)
self.view.addSubview(self.mediumQualityView)
self.view.addSubview(self.highQualityView)
self.view.addSubview(self.submitButton)
self.imageView.snp.makeConstraints { make in
make.top.equalTo(self.compressNav!.height + 20)
make.left.equalToSuperview().offset(15)
make.right.equalToSuperview().offset(-15)
make.height.equalTo(259)
}
self.tipLabel.snp.makeConstraints { make in
make.top.equalTo(self.imageView.snp.bottom).offset(28)
make.left.equalToSuperview().offset(15)
make.right.equalToSuperview().offset(-15)
make.height.equalTo(22)
}
self.detailTiplabel.snp.makeConstraints { make in
make.top.equalTo(self.tipLabel.snp.bottom).offset(4)
make.left.equalToSuperview().offset(15)
make.right.equalToSuperview().offset(-15)
make.height.equalTo(17)
}
self.lowQualityView.snp.makeConstraints { make in
make.top.equalTo(self.detailTiplabel.snp.bottom).offset(16)
make.left.equalToSuperview().offset(15)
make.right.equalToSuperview().offset(-15)
make.height.equalTo(61)
}
self.mediumQualityView.snp.makeConstraints { make in
make.top.equalTo(self.lowQualityView.snp.bottom).offset(12)
make.left.equalToSuperview().offset(15)
make.right.equalToSuperview().offset(-15)
make.height.equalTo(61)
}
self.highQualityView.snp.makeConstraints { make in
make.top.equalTo(self.mediumQualityView.snp.bottom).offset(12)
make.left.equalToSuperview().offset(15)
make.right.equalToSuperview().offset(-15)
make.height.equalTo(61)
}
self.submitButton.snp.makeConstraints { make in
make.bottom.equalTo(-40)
make.left.equalToSuperview().offset(15)
make.right.equalToSuperview().offset(-15)
make.height.equalTo(46)
}
}
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
self.navigationController?.navigationBar.isHidden = true
setUI()
}
@objc func submitAction(){
let compressingView : CompressingView = CompressingView(frame: self.view.bounds)
self.view.addSubview(compressingView)
let queue = DispatchQueue.global()
let delayTime = DispatchTime.now() + 3.0
queue.asyncAfter(deadline: delayTime) {
DispatchQueue.main.async {
compressingView.removeFromSuperview()
let vc = CompressCompletedViewController()
self.navigationController?.pushViewController(vc, animated: true)
}
}
}
}
......@@ -9,6 +9,8 @@ import Foundation
class CompressCompletedViewController : BaseViewController{
var model : [ResourceModel]?
lazy var imageView: UIImageView = {
let imageView = UIImageView()
imageView.clipsToBounds = true
......
//
// CompressSelectCell.swift
// PhoneManager
//
// Created by edy on 2025/4/2.
//
import Foundation
typealias CompressSelectCellCallback = (ResourceModel,Bool)->Void
class CompressSelectCell : UICollectionViewCell {
var callBack : CompressSelectCellCallback = {model,choose in}
var model : ResourceModel? {
didSet{
guard let model = self.model else {return}
let image = PhotoAndVideoMananger.mananger.getImageFromAssetID(id: model.ident)
self.backImageView.image = image
self.saveSizeLabel.text = String(format: "Save %.2f MB" ,Double(model.saveSize)/1024.0)
}
}
var choose : Bool = false {
didSet{
}
}
lazy var backImageView: UIImageView = {
let view = UIImageView()
view.isUserInteractionEnabled = true
view.contentMode = .scaleAspectFill
view.clipsToBounds = true
view.layer.masksToBounds = true
view.layer.cornerRadius = 12
return view
}()
lazy var saveSizeView: UIView = {
let view = UIView()
view.layer.masksToBounds = true
view.layer.cornerRadius = 4
view.backgroundColor = UIColor(red: 0, green: 0.51, blue: 1, alpha: 1)
return view
}()
lazy var saveSizeLabel: UILabel = {
let view = UILabel()
view.textAlignment = .left
view.textColor = UIColor(red: 1, green: 1, blue: 1, alpha: 1)
view.font = UIFont.systemFont(ofSize: 12, weight: .regular)
view.text = "Save 1.3MB"
return view
}()
lazy var moreImageView: UIImageView = {
let view = UIImageView()
view.image = UIImage(named: "icon_left_setting_grey")
view.backgroundColor = .clear
return view
}()
lazy var selectImageView: UIImageView = {
let view = UIImageView()
view.image = UIImage(named: "ic_sel_com")
view.backgroundColor = .clear
view.isUserInteractionEnabled = true
let tap = UITapGestureRecognizer()
tap.addTarget(self, action: #selector(selectClick))
view.addGestureRecognizer(tap)
return view
}()
@objc func selectClick(){
self.choose = !self.choose
if choose {
self.selectImageView.image = UIImage(named: "ic_unsel_com")
}else{
self.selectImageView.image = UIImage(named: "ic_sel_com")
}
callBack(self.model! ,self.choose)
}
override init(frame: CGRect) {
super.init(frame: frame)
self.addSubview(self.backImageView)
self.addSubview(self.saveSizeView)
self.saveSizeView.addSubview(self.saveSizeLabel)
self.saveSizeView.addSubview(self.moreImageView)
self.addSubview(self.selectImageView)
self.backImageView.snp.makeConstraints { make in
make.left.right.height.width.equalToSuperview()
}
self.saveSizeView.snp.makeConstraints { make in
make.left.equalToSuperview().offset(12)
make.bottom.equalToSuperview().offset(-12)
make.height.equalTo(48)
make.width.equalTo(120)
}
self.saveSizeLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(8)
make.centerY.equalToSuperview()
make.height.equalTo(48)
make.width.equalTo(120)
}
self.moreImageView.snp.makeConstraints { make in
make.right.equalToSuperview().offset(-4)
make.centerY.equalToSuperview()
make.height.width.equalTo(16)
}
self.selectImageView.snp.makeConstraints { make in
make.bottom.right.equalToSuperview().offset(-12)
make.height.width.equalTo(24)
}
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
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