|
@@ -25,53 +25,14 @@ class TSPTPInputVC: TSBaseVC {
|
|
|
var hintBaseVC = TSAIListHintBaseVC(config: .defaultConfig)
|
|
|
|
|
|
// ###################################### 导航栏 view ######################################
|
|
|
-
|
|
|
- lazy var vipBtn: UIButton = {
|
|
|
- let vipBtn = UIButton.createButton(image: UIImage(named: "nav_vip")) { [weak self] in
|
|
|
- guard let self = self else { return }
|
|
|
- TSPurchaseVC.show(target: self) {}
|
|
|
- }
|
|
|
- return vipBtn
|
|
|
- }()
|
|
|
-
|
|
|
- lazy var navBarView: TSBaseNavContentBarView = {
|
|
|
- let navBarView = TSBaseNavContentBarView()
|
|
|
-
|
|
|
- let titleImageView = UIImageView.createImageView(imageName: "nav_title_pic", contentMode: .scaleToFill)
|
|
|
- navBarView.barView.addSubview(titleImageView)
|
|
|
- titleImageView.snp.makeConstraints { make in
|
|
|
- make.centerY.equalToSuperview()
|
|
|
- make.left.equalTo(16)
|
|
|
- }
|
|
|
-
|
|
|
- navBarView.barView.addSubview(vipBtn)
|
|
|
- vipBtn.snp.makeConstraints { make in
|
|
|
- make.centerY.equalToSuperview()
|
|
|
- make.trailing.equalTo(-16) // (-60)
|
|
|
- make.width.height.equalTo(24)
|
|
|
- }
|
|
|
-
|
|
|
- return navBarView
|
|
|
- }()
|
|
|
-
|
|
|
+ lazy var vipBtn: UIButton = creatVipBtn()
|
|
|
+ lazy var navBarView: TSBaseNavContentBarView = creatNavBarView()
|
|
|
|
|
|
lazy var cusStackView: TSCustomStackView = creatStackView()
|
|
|
lazy var uploadView: TSPTPUploadView = creatUploadView()//上传图片
|
|
|
|
|
|
// ###################################### 选择风格 ######################################
|
|
|
- lazy var selectStyleView: TSPTPSelectStyleView = {
|
|
|
- let selectStyleView = TSPTPSelectStyleView()
|
|
|
- selectStyleView.currentIndexPath = IndexPath(item: viewModel.selectedStyleIndex, section: 0)
|
|
|
- selectStyleView.dataArray = viewModel.ptpStyleModels
|
|
|
- selectStyleView.clickHandle = { [weak self] indexPath, model in
|
|
|
- guard let self = self else { return }
|
|
|
- viewModel.selectedPTPStyleModel = model
|
|
|
- viewModel.selectedStyleIndex = indexPath.item
|
|
|
- updateVipView()
|
|
|
- updateTextFiledView()
|
|
|
- }
|
|
|
- return selectStyleView
|
|
|
- }()
|
|
|
+ lazy var selectStyleView: TSPTPSelectStyleView = creatSelectStyleView()
|
|
|
|
|
|
// ###################################### 输入框 ######################################
|
|
|
lazy var customTextView: TSPlaceholderTextView = creatCustomTextView()
|
|
@@ -80,36 +41,12 @@ class TSPTPInputVC: TSBaseVC {
|
|
|
lazy var promptTextView: UIView = creatPromptTextView()
|
|
|
|
|
|
// ###################################### 集合视图 ######################################
|
|
|
- private var collectionViewObserver: CollectionViewObserver!
|
|
|
+ var collectionViewObserver: CollectionViewObserver!
|
|
|
let collectionViewBtootm: CGFloat = 80
|
|
|
lazy var collectionComponent: TSCollectionViewComponent = creatCollectionComponent()
|
|
|
|
|
|
// ###################################### Button ######################################
|
|
|
- lazy var creatBtnView: TSAppBtnView = {
|
|
|
- let creatBtnView = TSAppBtnView()
|
|
|
- creatBtnView.setUpButton(style: .generate, vipFreeNumType: .picToPic) { [weak self] in
|
|
|
- guard let self = self else { return }
|
|
|
- generateImage()
|
|
|
- }
|
|
|
- creatBtnView.setBtnEnabled(isEnabled: false)
|
|
|
- creatBtnView.isIconVipBlock = { [weak self] in
|
|
|
- guard let self = self else { return false }
|
|
|
- var showVip = kPurchaseDefault.generateVipShow(type: .picToPic)
|
|
|
- if showVip == false {
|
|
|
- showVip = self.viewModel.selectedPTPStyleModel.isVip
|
|
|
- }
|
|
|
- return showVip
|
|
|
- }
|
|
|
- creatBtnView.isClickVipBlock = { [weak self] in
|
|
|
- guard let self = self else { return false }
|
|
|
- var isVip = kPurchaseDefault.freeNumAvailable(type: .picToPic) == false
|
|
|
- if viewModel.selectedPTPStyleModel.isVip == true {
|
|
|
- isVip = true
|
|
|
- }
|
|
|
- return isVip
|
|
|
- }
|
|
|
- return creatBtnView
|
|
|
- }()
|
|
|
+ lazy var creatBtnView: TSAppBtnView = creatAppBtnView()
|
|
|
|
|
|
override func createView() {
|
|
|
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(clickView))
|
|
@@ -138,26 +75,10 @@ class TSPTPInputVC: TSBaseVC {
|
|
|
}
|
|
|
|
|
|
override func dealThings() {
|
|
|
- updataCollectionView()
|
|
|
- // 监听 vip 变化
|
|
|
- NotificationCenter.default.addObserver(self, selector: #selector(vipInfoChanged), name: .kPurchaseDidChanged, object: nil)
|
|
|
- updateVipView()
|
|
|
-
|
|
|
- TSAIListHintBaseVC.userDefaultsKey = "isFirstUploadImagePTP"
|
|
|
-
|
|
|
- // 监听键盘事件
|
|
|
- NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow(_:)), name: UIResponder.keyboardWillShowNotification, object: nil)
|
|
|
- NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide(_:)), name: UIResponder.keyboardWillHideNotification, object: nil)
|
|
|
-
|
|
|
- // 监听collectionView 的 contentSize
|
|
|
- collectionViewObserver = CollectionViewObserver(collectionView: collectionComponent.collectionView)
|
|
|
- collectionViewObserver.onContentSizeChange = { [weak self] size in
|
|
|
- guard let self = self else { return }
|
|
|
- print("collectionViewObserver 内容大小变化: \(size)")
|
|
|
- self.collectionComponent.collectionView.snp.updateConstraints { make in
|
|
|
- make.height.equalTo(size.height)
|
|
|
- }
|
|
|
- }
|
|
|
+ handleColLogic()
|
|
|
+ handleVipLogic()
|
|
|
+ handleUploadLogic()
|
|
|
+ handleTextFiledLogic()
|
|
|
|
|
|
// 监听按钮任务生成中
|
|
|
NotificationCenter.default.addObserver(forName: .kBaseOperationQueueCountChanged, object: nil, queue: nil) { [weak self] _ in
|
|
@@ -171,25 +92,17 @@ class TSPTPInputVC: TSBaseVC {
|
|
|
|
|
|
if let userInfo = notification.userInfo as? [String: Any], let state = userInfo["state"] as? TSProgressState {
|
|
|
dePrint("TSBaseOperation stateDatauPblished 收到 = \(state)")
|
|
|
-// if state.isResult {//有结果,一定要刷新
|
|
|
-// updataCollectionView()
|
|
|
-// }else if self.isViewVisible == false {
|
|
|
- //// dePrint("TSBaseOperation 视图不可见")
|
|
|
-// return
|
|
|
-// }else
|
|
|
-// if state.reloadNewData {//主要是给pending用,让他再视图中有个位置占着
|
|
|
- updataCollectionView()
|
|
|
-// }
|
|
|
+ if state.reloadNewData {
|
|
|
+ updataCollectionView()
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 同时 VC主动刷新UI界面
|
|
|
- NotificationCenter.default.addObserver(forName: .kPTPDataChanged, object: nil, queue: nil) { [weak self] _ in
|
|
|
+ NotificationCenter.default.addObserver(forName: .kPTPDataChanged, object: nil, queue: .main) { [weak self] _ in
|
|
|
guard let self = self else { return }
|
|
|
- DispatchQueue.main.async {
|
|
|
- debugPrint("kPTPDataChanged listModels.first=\(self.viewModel.listModels.first?.toJSONString())")
|
|
|
- self.updataCollectionView()
|
|
|
- }
|
|
|
+ debugPrint("kPTPDataChanged listModels.first=\(self.viewModel.listModels.first?.toJSONString())")
|
|
|
+ self.updataCollectionView()
|
|
|
}
|
|
|
|
|
|
NotificationCenter.default.addObserver(self, selector: #selector(autoSelectImageToImageStyle(notify:)), name: .schemeImageToImageStylePick, object: nil)
|
|
@@ -197,24 +110,7 @@ class TSPTPInputVC: TSBaseVC {
|
|
|
}
|
|
|
|
|
|
|
|
|
-extension TSPTPInputVC {
|
|
|
- @objc func vipInfoChanged() {
|
|
|
- kExecuteOnMainThread {
|
|
|
- self.updateVipView()
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- func updateVipView() {
|
|
|
- kExecuteOnMainThread {
|
|
|
- self.vipBtn.isHidden = PurchaseManager.default.isVip
|
|
|
- self.creatBtnView.updateVipView()
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- func getVipText() -> String {
|
|
|
- return "Generate".localized
|
|
|
- }
|
|
|
-}
|
|
|
|
|
|
extension TSPTPInputVC {
|
|
|
@objc func clickView() {
|
|
@@ -246,25 +142,8 @@ extension TSPTPInputVC {
|
|
|
|
|
|
kPresentModalVC(target: self, modelVC: gennerateVC, transitionStyle: .crossDissolve)
|
|
|
}
|
|
|
-
|
|
|
- func setCreatBtnEnabled() {
|
|
|
- let isAvailability = TSGeneratePTPOperationQueue.shared.isAvailability
|
|
|
- if viewModel.isCanGennerate, isAvailability {
|
|
|
- creatBtnView.setBtnEnabled(isEnabled: true)
|
|
|
- creatBtnView.loading = false
|
|
|
- dePrint("TSTextGeneralPicVC setCreatBtnEnabled false")
|
|
|
- } else {
|
|
|
- dePrint("TSTextGeneralPicVC setCreatBtnEnabled = \(isAvailability)")
|
|
|
- creatBtnView.setBtnEnabled(isEnabled: false)
|
|
|
- creatBtnView.loading = !isAvailability
|
|
|
- }
|
|
|
-
|
|
|
- updateVipView()
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
extension TSPTPInputVC {
|
|
|
@objc func autoSelectImageToImageStyle(notify: Notification) {
|
|
|
if let objc = notify.userInfo as? [String: String] {
|