TSAIListDataModel.swift 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. //
  2. // Untitled.swift
  3. // TSLiveWallpaper
  4. //
  5. // Created by 100Years on 2025/7/2.
  6. //
  7. //MARK: 枚举
  8. enum TSDiscoverItemAnimationStyle:CaseIterable {
  9. case none
  10. case comparison
  11. case gif
  12. }
  13. let kDiscoverSection:UIEdgeInsets = UIEdgeInsets(top: 0, left: 16, bottom: 0, right: 16)
  14. //顶部按钮功能
  15. let fullCardW = k_ScreenWidth - kDiscoverSection.left - kDiscoverSection.right
  16. let fullCardSize:CGSize = CGSize(width: fullCardW, height: kGetScaleHeight(originalSize: CGSize(width: 343, height: 230), width: fullCardW))
  17. enum TSDiscoverViewStyle:CaseIterable {
  18. case funcItems //功能按钮块
  19. case styleMore //更多风格
  20. case fullCard //大卡片
  21. var itemSize:CGSize {
  22. switch self {
  23. case .funcItems:
  24. return CGSize(width: k_ScreenWidth, height: 112.0)
  25. case .styleMore:
  26. return CGSize(width: k_ScreenWidth, height: 200.0)
  27. case .fullCard:
  28. return fullCardSize
  29. }
  30. }
  31. var cell:TSAILIstBaseCell.Type {
  32. switch self {
  33. case .funcItems:
  34. return TSAILIstFullCardCell.self
  35. case .styleMore:
  36. return TSAILIstStyleMoreCell.self
  37. case .fullCard:
  38. return TSAILIstFullCardCell.self
  39. }
  40. }
  41. }
  42. //MARK: UI model
  43. class TSDiscoverBaseItemVM {
  44. var title:String = ""
  45. var imageNamed:String = ""
  46. var info:String = ""
  47. init(title: String, imageNamed: String, info: String = "") {
  48. self.title = title
  49. self.imageNamed = imageNamed
  50. self.info = info
  51. }
  52. }
  53. class TSDiscoverAnimationItemVM:TSDiscoverBaseItemVM{
  54. var style:TSDiscoverItemAnimationStyle = .none
  55. var imageNameds:[String] = []
  56. init(title: String, info: String = "",style: TSDiscoverItemAnimationStyle = .comparison, imageNameds: [String]) {
  57. self.style = style
  58. self.imageNameds = imageNameds
  59. super.init(title: title, imageNamed: "")
  60. }
  61. }
  62. //MARK: 分区
  63. let kDiscoverSectionH = 56.0
  64. class TSDiscoverSectionModel {
  65. var title:String = ""
  66. var style:TSDiscoverViewStyle = .styleMore
  67. var items:[Any] = []
  68. var sectionEdge:UIEdgeInsets = UIEdgeInsets(top: 0, left: kDiscoverSection.left, bottom: 0, right: kDiscoverSection.right)
  69. func setTitle(title:String) {
  70. self.title = title
  71. }
  72. }
  73. class TSDiscoverItemModel {
  74. var style:TSGeneratorImageStyle = .ptp
  75. var viewModel:TSDiscoverBaseItemVM
  76. var generateModel:TSGenerateModel?
  77. var name:String {
  78. if viewModel.title.isEmpty {
  79. if let generateModel = generateModel,!generateModel.imageText.isEmpty{
  80. return generateModel.imageText.localized
  81. }
  82. }
  83. return viewModel.title.localized
  84. }
  85. var imageNamed:String {
  86. if !viewModel.imageNamed.isEmpty {
  87. return viewModel.imageNamed
  88. }
  89. return ""
  90. }
  91. init(style: TSGeneratorImageStyle,
  92. viewModel:TSDiscoverBaseItemVM,
  93. generateModel: TSGenerateModel? = nil) {
  94. self.style = style
  95. self.viewModel = viewModel
  96. self.generateModel = generateModel
  97. }
  98. }