// // 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 // }() //MARK: UI属性 private lazy var scrollView: SPScrollView = { let scrollView = SPScrollView() return scrollView }() private lazy var stackView: UIStackView = { let view = UIStackView() view.axis = .vertical view.spacing = 18 view.addArrangedSubview(textView1) view.addArrangedSubview(textView3) view.addArrangedSubview(textView2) return view }() private lazy var iconImageView: UIImageView = { let imageView = UIImageView(image: UIImage(named: "delete_account_icon_01")) return imageView }() private lazy var iconTextLabel: UILabel = { let label = UILabel() label.font = .fontMedium(ofSize: 14) label.textColor = .colorFF473D() label.text = "DeleteAccount_tips_1".localized return label }() private lazy var textView1: SPDeleteAccountNormalTextView = { let view = SPDeleteAccountNormalTextView() view.text = "DeleteAccount_tips_2".localized return view }() private lazy var textView2: SPDeleteAccountNormalTextView = { let view = SPDeleteAccountNormalTextView() view.text = "DeleteAccount_tips_3".localized return view }() private lazy var textView3: SPDeleteAccountDetailTextView = { let view = SPDeleteAccountDetailTextView() return view }() 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) button.setContentHuggingPriority(.required, for: .horizontal) button.setContentCompressionResistancePriority(.required, for: .horizontal) return button }() private lazy var checkLabel: UILabel = { let label = UILabel() label.font = .fontMedium(ofSize: 14) label.textColor = .colorFFFFFF() label.numberOfLines = 0 label.text = "DeleteAccount_tips_4".localized return label }() private lazy var deleteButton: UIButton = { let button = UIButton(type: .custom) button.setTitle("DeleteAccount".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 = "movia_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() { let alert = SPAlertView(iconImage: UIImage(named: "delete_account_icon_02"), text: "movia_deleteAccountInfo".localized, cancelTitle: "movia_Cancel".localized, sureTitle: "movia_delete".localized) alert.clickSureButton = { SPLoginManager.manager.deleteAccount { [weak self] isFinish in guard let self = self else { return } if isFinish { self.navigationController?.popViewController(animated: true) } } } alert.show() } } extension SPDeleteAccountViewController { private func _setupUI() { view.addSubview(scrollView) scrollView.addSubview(iconImageView) scrollView.addSubview(iconTextLabel) scrollView.addSubview(stackView) scrollView.addSubview(lineView) scrollView.addSubview(checkButton) scrollView.addSubview(checkLabel) scrollView.addSubview(deleteButton) scrollView.snp.makeConstraints { make in make.edges.equalToSuperview() } iconImageView.snp.makeConstraints { make in make.centerX.equalToSuperview() make.top.equalToSuperview().offset(10) } iconTextLabel.snp.makeConstraints { make in make.centerX.equalToSuperview() make.top.equalTo(iconImageView.snp.bottom).offset(12) } stackView.snp.makeConstraints { make in make.left.equalToSuperview().offset(16) make.centerX.equalToSuperview() make.top.equalTo(iconTextLabel.snp.bottom).offset(18) } lineView.snp.makeConstraints { make in make.centerX.equalToSuperview() make.width.equalTo(kSPScreenWidth - 32) make.top.equalTo(stackView.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)) } } }