123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- //
- // TSAIListHintBaseVC.swift
- // AIEmoji
- //
- // Created by 100Years on 2025/4/9.
- //
- import PhotosUI
- class TSAIListHintBaseVC: TSBaseVC {
-
- static var userDefaultsKey:String = "isFirstAIListAge"
-
-
- var goodImageNamed:String = "ptp_goodImage"
- var badImageNamed:String = "ptp_badImage"
-
-
- let popupContentViewW:CGFloat = k_ScreenWidth - 40.0
- let popupContentViewH:CGFloat = k_ScreenHeight - 268.0
-
- var clickUpImageHandle:((UIImage?,PHAsset?)->Void)?
- lazy var popupContentView: UIView = {
- let popupContentView = UIView(frame: CGRectMake(0, 0, popupContentViewW, popupContentViewH))
- popupContentView.backgroundColor = "#222222".uiColor
- popupContentView.cornerRadius = 20.0
- return popupContentView
- }()
-
- lazy var photoPickerManager: TSPhotoPickerManager = {
- let photoPickerManager = TSPhotoPickerManager(viewController: self)
- return photoPickerManager
- }()
-
- // lazy var noPromptsBtn: UIButton = {
- // let noPromptsBtn = UIButton.createButton(title: "Do not show again".localized,image: UIImage(named: "circle_unSelected"),font: .font(size: 11),titleColor: .white.withAlphaComponent(0.6)){ [weak self] in
- // guard let self = self else { return }
- // changeNoPromptsBtn()
- // }
- // noPromptsBtn.setImage(UIImage(named: "circle_selected"), for: .selected)
- // noPromptsBtn.setTitleImageSpace(spacing: 6)
- // return noPromptsBtn
- // }()
- override func createView() {
- setNavBarViewHidden(true)
- view.backgroundColor = .black.withAlphaComponent(0.7)
-
- view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(clickView)))
-
- contentView.addSubview(popupContentView)
- popupContentView.center = view.center
-
- popupContentView.snp.makeConstraints { make in
- make.leading.equalTo(20)
- make.trailing.equalTo(-20)
- make.center.equalToSuperview()
- }
-
- setUpUI()
- }
-
-
- @objc func clickView() {
- dismiss()
- }
-
-
- func setUpUI(){
-
- let titleLabel = UILabel.createLabel(text: "Upload your photos".localized,font: .font(size: 18,weight: .semibold),textColor: .white,numberOfLines: 0)
- popupContentView.addSubview(titleLabel)
- titleLabel.snp.makeConstraints { make in
- make.leading.top.equalTo(32)
- make.trailing.equalTo(-32)
- }
-
- let goodLabel = UILabel.createLabel(text: "Good photo examples".localized,font: .font(size: 14,weight: .medium),textColor: .white,numberOfLines: 0)
- popupContentView.addSubview(goodLabel)
- goodLabel.snp.makeConstraints { make in
- make.top.equalTo(titleLabel.snp.bottom).offset(28)
- make.leading.equalTo(32)
- make.trailing.equalTo(-32)
- }
-
- let goodInfoLabel = UILabel.createLabel(text: "Fully clear and visible face, in good lighting".localized,font: .font(size: 14,weight: .medium),textColor: .white.withAlphaComponent(0.6),numberOfLines: 0)
- popupContentView.addSubview(goodInfoLabel)
- goodInfoLabel.snp.makeConstraints { make in
- make.top.equalTo(goodLabel.snp.bottom).offset(8)
- make.leading.equalTo(32)
- make.trailing.equalTo(-32)
- }
-
- let goodImageView = UIImageView.createImageView(imageName: goodImageNamed)
- popupContentView.addSubview(goodImageView)
- goodImageView.snp.makeConstraints { make in
- make.top.equalTo(goodInfoLabel.snp.bottom).offset(12)
- make.leading.equalTo(32)
- make.trailing.equalTo(-32)
- make.height.equalTo(108*kDesignScale)
- }
-
-
-
- let badLabel = UILabel.createLabel(text: "Bad photo examples".localized,font: .font(size: 14,weight: .medium),textColor: .white,numberOfLines: 0)
- popupContentView.addSubview(badLabel)
- badLabel.snp.makeConstraints { make in
- make.top.equalTo(goodImageView.snp.bottom).offset(28)
- make.leading.equalTo(32)
- make.trailing.equalTo(-32)
- }
-
- let badInfoLabel = UILabel.createLabel(text: "Group photos, covered faces, nudes".localized,font: .font(size: 14,weight: .medium),textColor: .white.withAlphaComponent(0.6),numberOfLines: 0)
- popupContentView.addSubview(badInfoLabel)
- badInfoLabel.snp.makeConstraints { make in
- make.top.equalTo(badLabel.snp.bottom).offset(8)
- make.leading.equalTo(32)
- make.trailing.equalTo(-32)
- }
-
- let badImageView = UIImageView.createImageView(imageName: badImageNamed)
- popupContentView.addSubview(badImageView)
- badImageView.snp.makeConstraints { make in
- make.top.equalTo(badInfoLabel.snp.bottom).offset(12)
- make.leading.equalTo(32)
- make.trailing.equalTo(-32)
- make.height.equalTo(108*kDesignScale)
- }
-
- let submitBtn = kCreateNormalSubmitBtn(title: "Upload Photo".localized) { [weak self] in
- guard let self = self else { return }
- pickSinglePhoto()
- }
- submitBtn.cornerRadius = 24.0
- popupContentView.addSubview(submitBtn)
- submitBtn.snp.makeConstraints { make in
- make.top.equalTo(badImageView.snp.bottom).offset(35)
- make.centerX.equalToSuperview()
- make.width.equalTo(250*kDesignScale)
- make.height.equalTo(48)
- make.bottom.equalTo(-24)
- }
- // popupContentView.addSubview(noPromptsBtn)
- // noPromptsBtn.snp.makeConstraints { make in
- // make.top.equalTo(submitBtn.snp.bottom).offset(12)
- // make.centerX.equalToSuperview()
- // make.height.equalTo(16)
- // make.bottom.equalTo(-24)
- // }
- }
-
- // func changeNoPromptsBtn(){
- // noPromptsBtn.isSelected = !noPromptsBtn.isSelected
- // Self.isShowUploadImageHint = !noPromptsBtn.isSelected
- // }
-
- static var isShowUploadImageHint:Bool{
- get {
- return UserDefaults.standard.string(forKey: userDefaultsKey) == nil
- }
-
- set {
- UserDefaults.standard.set(newValue ? nil : "1", forKey: userDefaultsKey)
- UserDefaults.standard.synchronize()
- }
- }
-
- func pickSinglePhoto() {
- photoPickerManager.pickSinglePhoto { [weak self] image,phAsset in
- guard let self = self else { return }
- dismiss()
- clickUpImageHandle?(image,phAsset)
- }
- }
- }
|