// // SPDeleteAccountViewController.swift // MoviaBox // // Created by 佳尔 on 2025/4/29. // import UIKit class SPDeleteAccountViewController: SPViewController { private lazy var imageArr: [UIImage] = { let arr = [ UIImage(named: "delete_account_image_01")!, UIImage(named: "delete_account_image_02")!, UIImage(named: "delete_account_image_03")!, UIImage(named: "delete_account_image_04")!, ] return arr }() private lazy var imageViewArr: [UIImageView] = [] //MARK: UI属性 private lazy var scrollView: SPScrollView = { let scrollView = SPScrollView() return scrollView }() private lazy var lineView: UIView = { let view = UIView() view.backgroundColor = .colorFFFFFF(alpha: 0.25) return view }() private lazy var checkButton: UIButton = { let button = UIButton(type: .custom) button.setImage(UIImage(named: "check_icon_01"), for: .normal) button.setImage(UIImage(named: "check_icon_01_selected"), for: .selected) button.setImage(UIImage(named: "check_icon_01_selected"), for: [.selected, .highlighted]) button.addTarget(self, action: #selector(handleCheckButton), for: .touchUpInside) return button }() private lazy var checkLabel: UILabel = { let label = UILabel() label.font = .fontMedium(ofSize: 14) label.textColor = .colorFFFFFF() label.numberOfLines = 0 label.text = "kDeleteAccountCheckText".localized return label }() private lazy var deleteButton: UIButton = { let button = UIButton(type: .custom) button.setTitle("Delete Account".localized, for: .normal) button.setTitleColor(.color8B8B8B(), for: .disabled) button.setTitleColor(.colorFFFFFF(), for: .normal) button.setBackgroundImage(UIImage(color: .color272A30()), for: .disabled) button.setBackgroundImage(UIImage(color: .colorFF1F1F()), for: .normal) button.titleLabel?.font = .fontMedium(ofSize: 14) button.layer.cornerRadius = 18 button.layer.masksToBounds = true button.isEnabled = false button.addTarget(self, action: #selector(handleDeleteButton), for: .touchUpInside) return button }() override func viewDidLoad() { super.viewDidLoad() self.title = "Account Deletion".localized setBackgroundView(isShowGradient: false, bgImage: nil) _setupUI() } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.navigationController?.setNavigationBarHidden(false, animated: true) setNavigationNormalStyle() } } extension SPDeleteAccountViewController { @objc private func handleCheckButton() { self.checkButton.isSelected = !self.checkButton.isSelected self.deleteButton.isEnabled = self.checkButton.isSelected } @objc private func handleDeleteButton() { SPUserAPI.requestLogoff { isFinish in } } } extension SPDeleteAccountViewController { private func _setupUI() { view.addSubview(scrollView) scrollView.addSubview(lineView) scrollView.addSubview(checkButton) scrollView.addSubview(checkLabel) scrollView.addSubview(deleteButton) imageArr.forEach { let imageSize = $0.size let imageView = UIImageView(image: $0) scrollView.addSubview(imageView) if let lastImageView = self.imageViewArr.last { let width = kSPScreenWidth - 32 let height = imageSize.height / imageSize.width * width imageView.snp.makeConstraints { make in make.top.equalTo(lastImageView.snp.bottom).offset(18) make.width.equalTo(width) make.height.equalTo(height) make.centerX.equalToSuperview() } } else { imageView.snp.makeConstraints { make in make.top.equalToSuperview().offset(10) make.width.equalTo(kSPMainW(imageSize.width)) make.height.equalTo(kSPMainW(imageSize.height)) make.centerX.equalToSuperview() } } self.imageViewArr.append(imageView) } scrollView.snp.makeConstraints { make in make.edges.equalToSuperview() } lineView.snp.makeConstraints { make in make.centerX.equalToSuperview() make.width.equalTo(kSPScreenWidth - 32) make.top.equalTo(self.imageViewArr.last!.snp.bottom).offset(18) make.height.equalTo(1) } checkButton.snp.makeConstraints { make in make.left.equalToSuperview().offset(16) make.top.equalTo(lineView.snp.bottom).offset(18) } checkLabel.snp.makeConstraints { make in make.left.equalTo(checkButton.snp.right).offset(10) // make.right.lessThanOrEqualToSuperview().offset(-16) make.right.lessThanOrEqualTo(lineView) make.top.equalTo(checkButton).offset(2) } deleteButton.snp.makeConstraints { make in make.left.right.equalTo(lineView) make.top.equalTo(checkLabel.snp.bottom).offset(18) make.height.equalTo(36) make.bottom.equalToSuperview().offset(-(kSPTabbarSafeBottomMargin + 15)) } } }