TiUIMenuTowViewCell.m 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. //
  2. // TiUIMenuTowViewCell.m
  3. // TiSDKDemo
  4. //
  5. // Created by iMacA1002 on 2019/12/5.
  6. // Copyright © 2020 Tillusory Tech. All rights reserved.
  7. //
  8. #import "TiUIMenuTowViewCell.h"
  9. #import "TIConfig.h"
  10. #import "TiUISubMenuTowViewCell.h"
  11. #import "TISetSDKParameters.h"
  12. @interface TiUIMenuTowViewCell ()<UICollectionViewDelegate,UICollectionViewDataSource>
  13. @property(nonatomic,strong) UICollectionView *menuCollectionView;
  14. @property(nonatomic,strong) NSIndexPath *selectedIndexPath;
  15. @end
  16. static NSString *const TiUIMenuCollectionViewCellId = @"TiUIMainMenuTiUIMenuTowViewCellId";
  17. @implementation TiUIMenuTowViewCell
  18. -(UICollectionView *)menuCollectionView{
  19. if (_menuCollectionView == nil) {
  20. UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
  21. layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
  22. layout.itemSize = CGSizeMake(TiUISubMenuTowViewTIButtonWidth, TiUISubMenuTowViewTIButtonHeight);
  23. // // 设置最小行间距
  24. CGFloat Spacing = (SCREEN_WIDTH -60 - 5*TiUISubMenuTowViewTIButtonWidth)/4;
  25. layout.minimumLineSpacing = Spacing;
  26. _menuCollectionView =[[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
  27. _menuCollectionView.showsHorizontalScrollIndicator = NO;
  28. _menuCollectionView.backgroundColor = [UIColor whiteColor];
  29. _menuCollectionView.dataSource= self;
  30. _menuCollectionView.delegate = self;
  31. [_menuCollectionView registerClass:[TiUISubMenuTowViewCell class] forCellWithReuseIdentifier:TiUIMenuCollectionViewCellId];
  32. }
  33. return _menuCollectionView;
  34. }
  35. - (instancetype)initWithFrame:(CGRect)frame
  36. {
  37. self = [super initWithFrame:frame];
  38. if (self) {
  39. [self addSubview:self.menuCollectionView];
  40. [self.menuCollectionView mas_makeConstraints:^(MASConstraintMaker *make) {
  41. make.left.equalTo(self.mas_left).offset(30);
  42. make.right.equalTo(self.mas_right).offset(-30);
  43. make.centerY.equalTo(self.mas_centerY);
  44. make.height.mas_equalTo(TiUISubMenuTowViewTIButtonHeight);
  45. }];
  46. }
  47. return self;
  48. }
  49. #pragma mark ---UICollectionViewDataSource---
  50. //设置每个section包含的item数目
  51. - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
  52. switch (self.mode.menuTag) {
  53. case 4:
  54. return [TIMenuPlistManager shareManager].lvjingModeArr.count;
  55. break;
  56. case 5:
  57. return [TIMenuPlistManager shareManager].doudongModeArr.count;
  58. break;
  59. case 6:
  60. return [TIMenuPlistManager shareManager].hahajingModeArr.count;
  61. break;
  62. default:
  63. return 0;
  64. break;
  65. }
  66. }
  67. //返回对应indexPath的cell
  68. - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
  69. TiUISubMenuTowViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:TiUIMenuCollectionViewCellId forIndexPath:indexPath];
  70. TIMenuMode *subMod = nil;
  71. switch (self.mode.menuTag) {
  72. case 4:
  73. {
  74. subMod = [TIMenuPlistManager shareManager].lvjingModeArr[indexPath.row];
  75. [cell setCellType:TI_UI_TOWSUBCELL_TYPE_ONE];
  76. }
  77. break;
  78. case 5:
  79. {
  80. subMod = [TIMenuPlistManager shareManager].doudongModeArr[indexPath.row];
  81. [cell setCellType:TI_UI_TOWSUBCELL_TYPE_ONE];
  82. }
  83. break;
  84. case 6:
  85. {
  86. subMod = [TIMenuPlistManager shareManager].hahajingModeArr[indexPath.row];
  87. [cell setCellType:TI_UI_TOWSUBCELL_TYPE_TWO];
  88. }
  89. break;
  90. default:
  91. break;
  92. }
  93. if (subMod.selected)
  94. {
  95. self.selectedIndexPath = [NSIndexPath indexPathForRow:indexPath.row inSection:0];
  96. }
  97. [cell setSubMod:subMod];
  98. return cell;
  99. }
  100. #pragma mark ---UICollectionViewDelegate---
  101. //选择了某个cell
  102. - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
  103. if (self.selectedIndexPath.row==indexPath.row) return;
  104. switch (self.mode.menuTag) {
  105. case 4:
  106. {
  107. if (self.clickOnCellBlock)
  108. {
  109. self.clickOnCellBlock(indexPath.row);
  110. }
  111. [TIMenuPlistManager shareManager].lvjingModeArr = [[TIMenuPlistManager shareManager] modifyObject:@(YES) forKey:@"selected" In:indexPath.row WithPath:@"TILvJingMenu.json"];
  112. [TIMenuPlistManager shareManager].lvjingModeArr = [[TIMenuPlistManager shareManager] modifyObject:@(NO) forKey:@"selected" In:self.selectedIndexPath.row WithPath:@"TILvJingMenu.json"];
  113. if (self.selectedIndexPath) {
  114. [collectionView reloadItemsAtIndexPaths:@[self.selectedIndexPath,indexPath]];
  115. }else{
  116. [collectionView reloadItemsAtIndexPaths:@[indexPath]];
  117. }
  118. self.selectedIndexPath = indexPath;
  119. [[TiSDKManager shareManager] setFilterEnum:[TISetSDKParameters getTiFilterEnumForIndex:indexPath.row] Param:[TISetSDKParameters getFloatValueForKey:TI_UIDCK_FILTER_SLIDER]];
  120. }
  121. break;
  122. case 5:
  123. {
  124. [TIMenuPlistManager shareManager].doudongModeArr = [[TIMenuPlistManager shareManager] modifyObject:@(YES) forKey:@"selected" In:indexPath.row WithPath:@"TIDouDongMenu.json"];
  125. [TIMenuPlistManager shareManager].doudongModeArr = [[TIMenuPlistManager shareManager] modifyObject:@(NO) forKey:@"selected" In:self.selectedIndexPath.row WithPath:@"TIDouDongMenu.json"];
  126. if (self.selectedIndexPath) {
  127. [collectionView reloadItemsAtIndexPaths:@[self.selectedIndexPath,indexPath]];
  128. }else{
  129. [collectionView reloadItemsAtIndexPaths:@[indexPath]];
  130. }
  131. self.selectedIndexPath = indexPath;
  132. [[TiSDKManager shareManager] setRockEnum:[TISetSDKParameters setRockEnumByIndex:indexPath.row]];
  133. }
  134. break;
  135. case 6:
  136. {
  137. [TIMenuPlistManager shareManager].hahajingModeArr = [[TIMenuPlistManager shareManager] modifyObject:@(YES) forKey:@"selected" In:indexPath.row WithPath:@"TIHaHaJingMenu.json"];
  138. [TIMenuPlistManager shareManager].hahajingModeArr = [[TIMenuPlistManager shareManager] modifyObject:@(NO) forKey:@"selected" In:self.selectedIndexPath.row WithPath:@"TIHaHaJingMenu.json"];
  139. if (self.selectedIndexPath) {
  140. [collectionView reloadItemsAtIndexPaths:@[self.selectedIndexPath,indexPath]];
  141. }else{
  142. [collectionView reloadItemsAtIndexPaths:@[indexPath]];
  143. }
  144. self.selectedIndexPath = indexPath;
  145. [[TiSDKManager shareManager] setDistortionEnum:[TISetSDKParameters setDistortionEnumByIndex:indexPath.row]];
  146. }
  147. break;
  148. default:
  149. break;
  150. }
  151. }
  152. - (void)setMode:(TIMenuMode *)mode{
  153. if (mode) {
  154. _mode = mode;
  155. }
  156. }
  157. @end