TSRandomWallpaperModel.swift 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. //
  2. // TSRandomWallpaperModel.swift
  3. // TSLiveWallpaper
  4. //
  5. // Created by 100Years on 2024/12/23.
  6. //
  7. import ObjectMapper
  8. class TSRandomWallpaperDataSectionModel: TSBaseModel {
  9. var style:ImageDataStyple = .homeLiveList {
  10. didSet{
  11. for itemModel in itemModels {
  12. itemModel.style = style
  13. }
  14. }
  15. }
  16. var itemModels:[TSRandomWallpaperDataItemModel] = [TSRandomWallpaperDataItemModel]()
  17. override func mapping(map: ObjectMapper.Map) {
  18. style <- map["style"]
  19. itemModels <- map["itemModels"]
  20. }
  21. }
  22. extension TSRandomWallpaperDataSectionModel : CollectionViewSectionComponent{
  23. var sectionInset: UIEdgeInsets {
  24. return style.sectionInset
  25. }
  26. var lineSpacing: CGFloat {
  27. return style.lineSpacing
  28. }
  29. var itemSpacing: CGFloat {
  30. return style.itemSpacing
  31. }
  32. var headerComponent: CollectionViewReuseViewComponent? {
  33. nil
  34. }
  35. var cells: [CollectionViewCellComponent] {
  36. return itemModels
  37. }
  38. }
  39. class TSRandomWallpaperDataItemModel: TSBaseModel {
  40. var style:ImageDataStyple = .homeLiveList {
  41. didSet{
  42. for itemModel in items {
  43. itemModel.style = style
  44. }
  45. }
  46. }
  47. var type:String = ""
  48. var items:[TSImageDataItemModel] = [TSImageDataItemModel]()
  49. var vip:Bool = false
  50. override func mapping(map: ObjectMapper.Map) {
  51. type <- map["type"]
  52. items <- map["items"]
  53. vip <- map["vip"]
  54. style <- map["style"]
  55. }
  56. }
  57. extension TSRandomWallpaperDataItemModel : CollectionViewCellComponent {
  58. var cellClass: UICollectionViewCell.Type {
  59. style.cellClass
  60. }
  61. func cellSize(with attrubites: [String : Any]?) -> CGSize {
  62. style.cellSize
  63. }
  64. }