TSAIGenerateBaseVC.swift 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. //
  2. // TSAIGenerateBaseVC.swift
  3. // AIEmoji
  4. //
  5. // Created by 100Years on 2025/6/24.
  6. //
  7. class TSAIGenerateBaseVC: TSBaseVC {
  8. lazy var bottomViewH = 60+k_Height_safeAreaInsetsBottom()
  9. lazy var bottomView: UIView = creatBottomView()
  10. lazy var xBtn: UIButton = creatXBtn()
  11. lazy var tryAgainBtn: UIButton = creatTryAgainBtn() //重试按钮
  12. lazy var regenerateBtn: UIButton = creatRegenerateBtn()
  13. lazy var shareBtn: TSVerticalButton = creatShareBtn()//左边分享按钮
  14. lazy var bigSaveBtn: UIButton = creatBigSaveBtn()//右边大保存按钮
  15. var isClickTheBlankClosePage = true //点击空白,关闭页面
  16. lazy var switchOriginalPictureBtn: TSUIExpandedTouchButton = creatSwitchOriginalPictureBtn()//新旧对比切换按钮
  17. lazy var netWorkImageView: UIImageView = creatNetWorkImageView()//图片生成
  18. lazy var expandAreaView: TSAIExpandChangeView = TSAIExpandChangeView()//扩图新旧对比
  19. var videoPlayerVC: TSAIListVideoPlayerVC = TSAIListVideoPlayerVC(videoURL: URL(string: "www.baidu.com")!)//视频生成
  20. var generatorModel:TSAIGeneratorModel
  21. var complete:((TSActionInfoModel)->Void)
  22. var infoModel:TSActionInfoModel?{
  23. didSet{
  24. updateResultView()
  25. }
  26. }
  27. //infoModel这个是用来显示数据库已有数据的,新生成就不要传递
  28. init(generatorModel:TSAIGeneratorModel,infoModel:TSActionInfoModel? = nil,complete:@escaping ((TSActionInfoModel)->Void)) {
  29. self.generatorModel = generatorModel
  30. self.complete = complete
  31. self.infoModel = infoModel
  32. super.init()
  33. }
  34. @MainActor required init?(coder: NSCoder) {
  35. fatalError("init(coder:) has not been implemented")
  36. }
  37. override func createView() {
  38. view.backgroundColor = .clear
  39. setNavBarViewHidden(true)
  40. contentView.addSubview(netWorkImageView)
  41. contentView.addSubview(bottomView)
  42. //关闭按钮
  43. view.addSubview(xBtn)
  44. xBtn.snp.makeConstraints { make in
  45. make.top.equalTo(k_Height_StatusBar + 4)
  46. make.leading.equalTo(16)
  47. make.width.equalTo(36)
  48. make.height.equalTo(36)
  49. }
  50. contentView.addSubview(regenerateBtn)
  51. regenerateBtn.snp.makeConstraints { make in
  52. make.top.equalTo(k_Height_StatusBar + 4)
  53. make.trailing.equalTo(-16)
  54. make.width.equalTo(36)
  55. make.height.equalTo(36)
  56. }
  57. let bottomBtnTop:CGFloat = 8.0
  58. //重试
  59. bottomView.addSubview(tryAgainBtn)
  60. tryAgainBtn.snp.makeConstraints { make in
  61. make.top.equalTo(bottomBtnTop)
  62. make.trailing.equalTo(-16)
  63. make.width.equalTo(252)
  64. make.height.equalTo(44)
  65. }
  66. //保存
  67. bottomView.addSubview(bigSaveBtn)
  68. bigSaveBtn.snp.makeConstraints { make in
  69. make.top.equalTo(bottomBtnTop)
  70. make.trailing.equalTo(-16)
  71. make.width.equalTo(252*kDesignScale)
  72. make.height.equalTo(44)
  73. }
  74. //share
  75. bottomView.addSubview(shareBtn)
  76. shareBtn.snp.makeConstraints { make in
  77. make.top.equalTo(bottomBtnTop)
  78. make.leading.equalTo(16)
  79. make.width.equalTo(shareBtn.intrinsicContentSize.width)
  80. make.height.equalTo(44)
  81. }
  82. //对比按钮
  83. contentView.addSubview(switchOriginalPictureBtn)
  84. switchOriginalPictureBtn.snp.makeConstraints { make in
  85. make.bottom.equalTo(-k_Height_safeAreaInsetsBottom() - 76)
  86. make.trailing.equalTo(-16)
  87. make.width.equalTo(40)
  88. make.height.equalTo(40)
  89. }
  90. setUpOtherTypeView()
  91. }
  92. func setUpOtherTypeView() {
  93. if isPhotoExpand {
  94. setUpExpandAreaView()
  95. }
  96. }
  97. func closePage() {
  98. self.dismiss(animated: true, completion: nil)
  99. }
  100. //重试
  101. @objc func clickTryAgainBtn(){}
  102. @objc func clickRegenerateBtn(){}
  103. //保存功能
  104. @objc func clickSaveBtn(){}
  105. @objc func clickShare(){}
  106. @objc func clickXBtn(){
  107. closePage()
  108. }
  109. @objc private func dismissKeyboard() {
  110. if isClickTheBlankClosePage {
  111. closePage()
  112. }
  113. }
  114. deinit {
  115. }
  116. }
  117. extension TSAIGenerateBaseVC {
  118. func updateResultView(){
  119. kMainAsync {
  120. guard let infoModel = self.infoModel else { return }
  121. if infoModel.isVideo {
  122. self.setVideoURL()
  123. }else if self.isPhotoExpand {
  124. self.setExpandAreaImage()
  125. }else{
  126. self.updateImageView()
  127. }
  128. }
  129. }
  130. }