// // SPApnsAlertView.swift // MoviaBox // // Created by 佳尔 on 2025/5/9. // import UIKit class SPApnsAlertView: UIView { //MARK: UI属性 private lazy var contentView: UIView = { let view = UIView() return view }() private lazy var bgView: UIView = { let imageView = UIImageView(image: UIImage(named: "alert_bg_image_01")) imageView.isUserInteractionEnabled = true return imageView }() private lazy var iconImageView: UIImageView = { let imageView = UIImageView(image: UIImage(named: "message_icon_01")) return imageView }() private lazy var titleLabel: UILabel = { let label = UILabel() label.font = .fontMedium(ofSize: 20) label.textColor = .colorFFFFFF() label.text = "kAlertMessage_03".localized label.textAlignment = .center label.numberOfLines = 0 return label }() private lazy var textLabel: UILabel = { let label = UILabel() label.textColor = .colorA8B8C3() label.font = .fontRegular(ofSize: 14) label.text = "kAlertMessage_04".localized label.textAlignment = .center label.numberOfLines = 0 return label }() private lazy var laterButton: UIButton = { let button = UIButton(type: .custom) button.setTitle("Later".localized, for: .normal) button.titleLabel?.font = .fontMedium(ofSize: 16) button.setTitleColor(.colorFF3232(), for: .normal) button.addTarget(self, action: #selector(handleLaterButton), for: .touchUpInside) return button }() private lazy var allowButton: UIButton = { let button = UIButton(type: .custom) button.setTitle("Allow".localized, for: .normal) button.titleLabel?.font = .fontMedium(ofSize: 16) button.setTitleColor(.colorFFFFFF(), for: .normal) button.layer.cornerRadius = 21 button.layer.masksToBounds = true button.backgroundColor = .colorFF3232() button.addTarget(self, action: #selector(handleAllowButton), for: .touchUpInside) return button }() override init(frame: CGRect) { super.init(frame: frame) backgroundColor = .color000000(alpha: 0.8) _setupUI() } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } func show() { guard let view = SPAPPTool.getKeyWindow() else { return } view.addSubview(self) self.snp.makeConstraints { make in make.edges.equalToSuperview() } } @objc private func handleLaterButton() { self.removeFromSuperview() } @objc private func handleAllowButton() { self.removeFromSuperview() SPAPPTool.openApnsSetting() } } extension SPApnsAlertView { private func _setupUI() { addSubview(contentView) contentView.addSubview(bgView) bgView.addSubview(iconImageView) bgView.addSubview(titleLabel) bgView.addSubview(textLabel) bgView.addSubview(laterButton) bgView.addSubview(allowButton) contentView.snp.makeConstraints { make in make.centerX.equalToSuperview() make.centerY.equalToSuperview() make.left.equalToSuperview().offset(26) } bgView.snp.makeConstraints { make in make.left.right.top.equalToSuperview() // make.height.equalTo(284) make.bottom.equalToSuperview() } iconImageView.snp.makeConstraints { make in make.centerX.equalToSuperview() make.top.equalToSuperview().offset(9) } titleLabel.snp.makeConstraints { make in make.centerX.equalToSuperview() make.top.equalTo(iconImageView.snp.bottom).offset(15) make.right.lessThanOrEqualToSuperview().offset(-30) } textLabel.snp.makeConstraints { make in make.centerX.equalToSuperview() make.top.equalTo(titleLabel.snp.bottom).offset(19) make.right.lessThanOrEqualToSuperview().offset(-30) } laterButton.snp.makeConstraints { make in make.left.equalToSuperview().offset(33) make.top.equalTo(textLabel.snp.bottom).offset(28) make.height.equalTo(42) } allowButton.snp.makeConstraints { make in make.right.equalToSuperview().offset(-33) make.left.equalTo(laterButton.snp.right).offset(13) make.width.height.top.equalTo(laterButton) make.bottom.equalToSuperview().offset(-32) } } }