TSPTPImageHintVC.swift 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. //
  2. // TSPTPImageHintVC.swift
  3. // AIEmoji
  4. //
  5. // Created by 100Years on 2025/4/8.
  6. //
  7. class TSPTPImageHintVC: TSBaseVC {
  8. let popupContentViewW:CGFloat = k_ScreenWidth - 40.0
  9. let popupContentViewH:CGFloat = k_ScreenHeight - 268.0
  10. var clickUpImageHandle:(()->Void)?
  11. lazy var popupContentView: UIView = {
  12. let popupContentView = UIView(frame: CGRectMake(0, 0, popupContentViewW, popupContentViewH))
  13. popupContentView.backgroundColor = "#222222".uiColor
  14. popupContentView.cornerRadius = 20.0
  15. return popupContentView
  16. }()
  17. lazy var noPromptsBtn: UIButton = {
  18. let noPromptsBtn = UIButton.createButton(title: "No more prompts".localized,image: UIImage(named: "selected_circle"),font: .font(size: 11),titleColor: .white.withAlphaComponent(0.6)){ [weak self] in
  19. guard let self = self else { return }
  20. changeNoPromptsBtn()
  21. }
  22. noPromptsBtn.setImage(UIImage(named: "radioboxSelected"), for: .selected)
  23. return noPromptsBtn
  24. }()
  25. override func createView() {
  26. setNavBarViewHidden(true)
  27. view.backgroundColor = .black.withAlphaComponent(0.7)
  28. view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(clickView)))
  29. contentView.addSubview(popupContentView)
  30. popupContentView.center = view.center
  31. popupContentView.snp.makeConstraints { make in
  32. make.leading.equalTo(20)
  33. make.trailing.equalTo(-20)
  34. make.center.equalToSuperview()
  35. }
  36. setUpUI()
  37. }
  38. @objc func clickView() {
  39. dismiss()
  40. }
  41. func setUpUI(){
  42. let titleLabel = UILabel.createLabel(text: "Upload your photos".localized,font: .font(size: 18,weight: .semibold),textColor: .white,numberOfLines: 0)
  43. popupContentView.addSubview(titleLabel)
  44. titleLabel.snp.makeConstraints { make in
  45. make.leading.top.equalTo(32)
  46. make.trailing.equalTo(-32)
  47. }
  48. let goodLabel = UILabel.createLabel(text: "Good photo examples".localized,font: .font(size: 14,weight: .medium),textColor: .white,numberOfLines: 0)
  49. popupContentView.addSubview(goodLabel)
  50. goodLabel.snp.makeConstraints { make in
  51. make.top.equalTo(titleLabel.snp.bottom).offset(28)
  52. make.leading.equalTo(32)
  53. make.trailing.equalTo(-32)
  54. }
  55. 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)
  56. popupContentView.addSubview(goodInfoLabel)
  57. goodInfoLabel.snp.makeConstraints { make in
  58. make.top.equalTo(goodLabel.snp.bottom).offset(8)
  59. make.leading.equalTo(32)
  60. make.trailing.equalTo(-32)
  61. }
  62. let goodImageView = UIImageView.createImageView(imageName: "ptp_goodImage")
  63. popupContentView.addSubview(goodImageView)
  64. goodImageView.snp.makeConstraints { make in
  65. make.top.equalTo(goodInfoLabel.snp.bottom).offset(12)
  66. make.leading.equalTo(32)
  67. make.trailing.equalTo(-32)
  68. make.height.equalTo(108*kDesignScale)
  69. }
  70. let badLabel = UILabel.createLabel(text: "Bad photo examples".localized,font: .font(size: 14,weight: .medium),textColor: .white,numberOfLines: 0)
  71. popupContentView.addSubview(badLabel)
  72. badLabel.snp.makeConstraints { make in
  73. make.top.equalTo(goodImageView.snp.bottom).offset(28)
  74. make.leading.equalTo(32)
  75. make.trailing.equalTo(-32)
  76. }
  77. let badInfoLabel = UILabel.createLabel(text: "Group photos, covered faces, nudes".localized,font: .font(size: 14,weight: .medium),textColor: .white.withAlphaComponent(0.6),numberOfLines: 0)
  78. popupContentView.addSubview(badInfoLabel)
  79. badInfoLabel.snp.makeConstraints { make in
  80. make.top.equalTo(badLabel.snp.bottom).offset(8)
  81. make.leading.equalTo(32)
  82. make.trailing.equalTo(-32)
  83. }
  84. let badImageView = UIImageView.createImageView(imageName: "ptp_badImage")
  85. popupContentView.addSubview(badImageView)
  86. badImageView.snp.makeConstraints { make in
  87. make.top.equalTo(badInfoLabel.snp.bottom).offset(12)
  88. make.leading.equalTo(32)
  89. make.trailing.equalTo(-32)
  90. make.height.equalTo(108*kDesignScale)
  91. }
  92. let submitBtn = kCreateNormalSubmitBtn(title: "Upload Photo".localized) { [weak self] in
  93. guard let self = self else { return }
  94. dismiss()
  95. clickUpImageHandle?()
  96. }
  97. submitBtn.cornerRadius = 24.0
  98. popupContentView.addSubview(submitBtn)
  99. submitBtn.snp.makeConstraints { make in
  100. make.top.equalTo(badImageView.snp.bottom).offset(35)
  101. make.centerX.equalToSuperview()
  102. make.width.equalTo(250*kDesignScale)
  103. make.height.equalTo(48)
  104. }
  105. noPromptsBtn.isSelected = true
  106. popupContentView.addSubview(noPromptsBtn)
  107. noPromptsBtn.snp.makeConstraints { make in
  108. make.top.equalTo(submitBtn.snp.bottom).offset(12)
  109. make.centerX.equalToSuperview()
  110. make.height.equalTo(16)
  111. make.bottom.equalTo(-24)
  112. }
  113. }
  114. func changeNoPromptsBtn(){
  115. noPromptsBtn.isSelected = !noPromptsBtn.isSelected
  116. Self.isShowUploadImageHint = noPromptsBtn.isSelected
  117. }
  118. static var isShowUploadImageHint:Bool{
  119. get {
  120. return UserDefaults.standard.string(forKey: "isFirstUploadImagePTP") == nil
  121. }
  122. set {
  123. UserDefaults.standard.set(newValue ? "1" : nil, forKey: "isFirstUploadImagePTP")
  124. UserDefaults.standard.synchronize()
  125. }
  126. }
  127. }