TSAIListHistoryBaseVC.swift 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. //
  2. // TSAIListHistoryBaseVC.swift
  3. // AIEmoji
  4. //
  5. // Created by 100Years on 2025/4/9.
  6. //
  7. class TSAIListHistoryBaseVC: TSBaseVC {
  8. var generatorStyle:TSGeneratorImageStyle
  9. var titleString:String?
  10. init(titleString:String? = nil,generatorStyle:TSGeneratorImageStyle) {
  11. self.titleString = titleString
  12. self.generatorStyle = generatorStyle
  13. super.init()
  14. }
  15. @MainActor required init?(coder: NSCoder) {
  16. fatalError("init(coder:) has not been implemented")
  17. }
  18. lazy var viewModel: TSAIListHistoryBaseVM = {
  19. let viewModel = TSAIListHistoryBaseVM(generatorStyle: generatorStyle)
  20. return viewModel
  21. }()
  22. //###################################### 集合视图 ######################################
  23. let collectionViewBtootm:CGFloat = 80
  24. lazy var collectionComponent: TSCollectionViewComponent = {
  25. let layout = UICollectionViewFlowLayout()
  26. let cp = TSCollectionViewComponent(frame: CGRect.zero, layout: layout, attributes: [:])
  27. cp.collectionView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: collectionViewBtootm, right: 0)
  28. // 禁用自动 contentInset 调整
  29. if #available(iOS 11.0, *) {
  30. cp.collectionView.contentInsetAdjustmentBehavior = .never
  31. } else {
  32. automaticallyAdjustsScrollViewInsets = false
  33. }
  34. cp.sectionActionHandler = { [weak self] cellCp, indexPath in
  35. guard let self = self else { return }
  36. if let cmd = cellCp as? String, cmd == "delete" {
  37. showCustomAlert(message: "Are you sure to delete".localized, deleteHandler: {
  38. self.viewModel.removeAllHistoryList()
  39. self.collectionComponent.clear()
  40. self.collectionComponent.reloadView(with: self.viewModel.colDataArray)
  41. })
  42. }
  43. }
  44. cp.itemDidSelectedHandler = { [weak self] (object, indexPath) in
  45. guard let self = self else { return }
  46. if let sections = viewModel.colDataArray.safeObj(At: indexPath.section) as? TSGenmojiCoLSectionModel{
  47. var dataModelArray:[TSGenmojiModel] = []
  48. for itemModel in sections.items {
  49. dataModelArray.append(itemModel.dataModel)
  50. }
  51. let browseVC = TSAIPhotoBrowseVC()
  52. browseVC.dataModelArray = dataModelArray
  53. browseVC.currentIndex = indexPath.item
  54. kPresentModalVC(target: self, modelVC: browseVC,transitionStyle: .crossDissolve)
  55. }
  56. }
  57. return cp
  58. }()
  59. override func createData() {
  60. }
  61. override func createView() {
  62. addNormalNavBarView()
  63. var titleString = "History".localized
  64. if let title = self.titleString {
  65. titleString = title
  66. }
  67. setPageTitle(titleString)
  68. _ = setNavigationItem("", imageName: "delete_white", direction: .right, action: #selector(clickNavRight))
  69. contentView.addSubview(collectionComponent.collectionView)
  70. collectionComponent.collectionView.snp.makeConstraints { make in
  71. make.edges.equalToSuperview()
  72. }
  73. collectionComponent.clear()
  74. collectionComponent.reloadView(with:viewModel.colDataArray)
  75. }
  76. @objc func clickNavRight() {
  77. showCustomAlert(message: "Are you sure to delete".localized, deleteHandler: {
  78. self.viewModel.removeAllHistoryList()
  79. self.collectionComponent.clear()
  80. self.collectionComponent.reloadView(with: self.viewModel.colDataArray)
  81. })
  82. }
  83. }