TSEmojisChildVC.swift 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. //
  2. // TSEmojisChildVC.swift
  3. // AIEmoji
  4. //
  5. // Created by 100Years on 2025/1/16.
  6. //
  7. import JXSegmentedView
  8. import JXPagingView
  9. class TSEmojisChildVC: TSBaseVC {
  10. var emojisType:String
  11. init(emojisType:String) {
  12. self.emojisType = emojisType
  13. super.init()
  14. }
  15. lazy var viewModel: TSEmojisChildViewModel = {
  16. var viewModel = TSEmojisChildViewModel(emojisType: emojisType)
  17. return viewModel
  18. }()
  19. required init?(coder: NSCoder) {
  20. fatalError("init(coder:) has not been implemented")
  21. }
  22. //联动滚动回调
  23. var listViewDidScrollCallback: ((UIScrollView) -> ())?
  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: 0, right: 0)
  28. cp.didScrollHandler = { [weak self] scrollView in
  29. guard let self = self else { return }
  30. listViewDidScrollCallback?(scrollView)
  31. }
  32. cp.itemDidSelectedHandler = { [weak self] (object, indexPath) in
  33. guard let self = self else { return }
  34. if let sections = viewModel.colDataArray.safeObj(At: indexPath.section) as? TSEmojisColSectionModel{
  35. var dataModelArray:[TSGenmojiModel] = []
  36. for itemModel in sections.items {
  37. let model = TSGenmojiModel()
  38. model.response.resultUrl = itemModel.dataModel.imageUrl
  39. model.response.vip = itemModel.dataModel.vip
  40. dataModelArray.append(model)
  41. }
  42. let browseVC = TSSmallIconBrowseVC()
  43. browseVC.dataModelArray = dataModelArray
  44. browseVC.currentIndex = indexPath.item
  45. kPresentModalVC(target: self, modelVC: browseVC,transitionStyle: .crossDissolve)
  46. }
  47. }
  48. return cp
  49. }()
  50. override func createView() {
  51. view.backgroundColor = "#222222".uiColor
  52. view.cornersRound(radius: 20, corner: [.topLeft,.topRight])
  53. edgesForExtendedLayout = []
  54. setNavBarViewHidden(true)
  55. setViewBgImageNamed(named: "emojis_view_bg")
  56. contentView.addSubview(collectionComponent.collectionView)
  57. reloadView()
  58. }
  59. func reloadView(){
  60. collectionComponent.clear()
  61. collectionComponent.reloadView(with:viewModel.colDataArray)
  62. }
  63. override func viewDidLayoutSubviews() {
  64. super.viewDidLayoutSubviews()
  65. // print("View did layout subviews")
  66. self.collectionComponent.collectionView.frame = self.view.bounds
  67. }
  68. }
  69. extension TSEmojisChildVC: JXPagingViewListViewDelegate {
  70. func listScrollView() -> UIScrollView {
  71. collectionComponent.collectionView
  72. }
  73. func listViewDidScrollCallback(callback: @escaping (UIScrollView) -> ()) {
  74. listViewDidScrollCallback = callback
  75. }
  76. func listView() -> UIView { view }
  77. func listWillAppear() {
  78. // print("\(title ?? ""):\(#function)")
  79. if collectionComponent.collectionView.visibleCells.count == 0 {
  80. // viewModel = TSEmojisChildViewModel(emojisType: emojisType)
  81. debugPrint("遇到空了")
  82. reloadView()
  83. }
  84. }
  85. func listDidAppear() {
  86. // print("\(title ?? ""):\(#function)")
  87. }
  88. func listWillDisappear() {
  89. // print("\(title ?? ""):\(#function)")
  90. }
  91. func listDidDisappear() {
  92. // print("\(title ?? ""):\(#function)")
  93. }
  94. }