TSPTPUploadImageVC.swift 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. //
  2. // TSPTPUploadImageVC.swift
  3. // AIEmoji
  4. //
  5. // Created by 100Years on 2025/6/24.
  6. //
  7. class TSPTPUploadImageVC: TSBaseVC {
  8. var generateModel:TSGenerateModel
  9. var sectionModel:TSDiscoverSectionModel
  10. init(generateModel:TSGenerateModel,sectionModel: TSDiscoverSectionModel) {
  11. self.generateModel = generateModel
  12. self.sectionModel = sectionModel
  13. super.init()
  14. }
  15. @MainActor required init?(coder: NSCoder) {
  16. fatalError("init(coder:) has not been implemented")
  17. }
  18. lazy var viewModel: TSPTPUploadImageVM = {
  19. let viewModel = TSPTPUploadImageVM(generateModel:generateModel,sectionModel: sectionModel)
  20. viewModel.isCanGennerateBlock = { [weak self] _ in
  21. guard let self = self else { return }
  22. setCreatBtnEnabled()
  23. }
  24. return viewModel
  25. }()
  26. lazy var photoPickerManager: TSPhotoPickerManager = TSPhotoPickerManager(viewController: self)
  27. lazy var uploadView: TSUploadImageView = creatUploadView()
  28. lazy var selectStyleVC: TSGennertatorStyleVC = creatSelectStyleVC()
  29. lazy var creatBtnView: TSAppBtnView = creatCreatBtnView() //Button
  30. override func createView() {
  31. addNormalNavBarView()
  32. setPageTitle(viewModel.selectedPTPStyleModel.imageText.localized)
  33. // setPageTitle(sectionModel.title.localized)
  34. contentView.addSubview(uploadView)
  35. uploadView.snp.makeConstraints { make in
  36. make.leading.trailing.equalToSuperview()
  37. make.top.equalTo(8)
  38. make.height.equalTo(313*kDesignScale)
  39. }
  40. self.addChild(selectStyleVC)
  41. contentView.addSubview(selectStyleVC.view)
  42. selectStyleVC.view.snp.makeConstraints { make in
  43. make.leading.trailing.bottom.equalToSuperview()
  44. make.top.equalTo(uploadView.snp.bottom).offset(24)
  45. }
  46. contentView.addSubview(creatBtnView)
  47. creatBtnView.snp.makeConstraints { make in
  48. make.bottom.equalTo(-20-k_Height_safeAreaInsetsBottom())
  49. make.leading.equalTo(16)
  50. make.trailing.equalTo(-16)
  51. make.height.equalTo(48)
  52. }
  53. }
  54. override func dealThings() {
  55. updateVipView()
  56. }
  57. }
  58. extension TSPTPUploadImageVC {
  59. func generateImage() {
  60. let gennerateVC = TSAIGenerateVC(generatorModel: viewModel.generatorModel) { [weak self] _ in
  61. guard let self = self else { return }
  62. updateVipView()
  63. }
  64. gennerateVC.changeImageBlock = { [weak self] image in
  65. guard let self = self else { return }
  66. viewModel.upLoadImage = image
  67. uploadView.upLoadImage = image
  68. }
  69. kPresentModalVC(target: self, modelVC: gennerateVC, transitionStyle: .crossDissolve)
  70. }
  71. }
  72. extension TSPTPUploadImageVC {
  73. func pickSinglePhoto() {
  74. photoPickerManager.pickCustomSinglePhoto { [weak self] image, errorString in
  75. guard let self = self else { return }
  76. if let errorString = errorString {
  77. TSToastShared.showToast(text: errorString)
  78. } else {
  79. viewModel.upLoadImage = image
  80. uploadView.upLoadImage = image
  81. }
  82. kDelayMainShort {
  83. self.photoPickerManager.dismissPageVC()
  84. }
  85. }
  86. }
  87. @objc func clickView() {
  88. view.endEditing(true)
  89. }
  90. }