CGXVerticalMenuMoreView.h 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. //
  2. // CGXVerticalMenuMoreView.h
  3. // CGXVerticalMenuView-OC
  4. //
  5. // Created by CGX on 2018/05/01.
  6. // Copyright © 2019 CGX. All rights reserved.
  7. //
  8. #import "CGXVerticalMenuCustomBaseView.h"
  9. #import "CGXVerticalMenuIndicatorLineView.h"
  10. #import "CGXVerticalMenuIndicatorBackgroundView.h"
  11. #import "CGXVerticalMenuMoreListView.h"
  12. #import "CGXVerticalMenuMoreListModel.h"
  13. NS_ASSUME_NONNULL_BEGIN
  14. @class CGXVerticalMenuMoreView;
  15. @class CGXVerticalMenuMoreListView;
  16. @protocol CGXVerticalMenuMoreViewDelegate <NSObject>
  17. @optional
  18. /** 如果你需要自定义cell样式,请在实现此代理方法返回你的自定义cell的class。 */
  19. - (Class)verticalMenuMoreViewCustomCollectionViewCellClass;
  20. /** 如果你需要自定义cell样式,请在实现此代理方法返回你的自定义cell的Nib。 */
  21. - (Class)verticalMenuMoreViewCustomCollectionViewCellNib;
  22. /**
  23. 每个分区自定义cell
  24. */
  25. - (UICollectionViewCell *)verticalMenuMoreView:(CGXVerticalMenuMoreView *)moreView
  26. CollectionView:(nonnull UICollectionView *)collectionView
  27. AtIndex:(NSInteger)index
  28. cellForItemAtIndexPath:(NSIndexPath *)indexPath;
  29. /**
  30. 自定义头部 需要设置frame
  31. */
  32. - (UIView *)verticalMenuMoreView:(CGXVerticalMenuMoreView *)moreView HeadAtIndex:(NSInteger)index;
  33. /**
  34. 自定义脚部 需要设置frame
  35. */
  36. - (UIView *)verticalMenuMoreView:(CGXVerticalMenuMoreView *)moreView FootAtIndex:(NSInteger)index;
  37. /**
  38. 每个分区头自定义view
  39. */
  40. - (UIView *)verticalMenuMoreView:(CGXVerticalMenuMoreView *)moreView AtIndex:(NSInteger)index KindHeadAtIndexPath:(NSIndexPath *)indexPath;
  41. /**
  42. 每个分区脚自定义view
  43. */
  44. - (UIView *)verticalMenuMoreView:(CGXVerticalMenuMoreView *)moreView AtIndex:(NSInteger)index KindFootAtIndexPath:(NSIndexPath *)indexPath;
  45. /** 左侧点击
  46. @param moreView moreView description
  47. @param index 选中的index
  48. */
  49. - (void)verticalMenuMoreView:(CGXVerticalMenuMoreView *)moreView didSelectedItemAtIndex:(NSInteger)index;
  50. /** 右侧点击
  51. @param moreView moreView description
  52. @param indexPath 选中的indexPath
  53. */
  54. - (void)verticalMenuMoreView:(CGXVerticalMenuMoreView *)moreView AtIndex:(NSInteger)index didSelectedItemDetailsAtIndexPath:(NSIndexPath *)indexPath;
  55. /** 右侧自定义下拉view
  56. @param moreView categoryView description
  57. @param listView 右侧滚动的view
  58. @param row 选中的row 左侧选中的下标
  59. */
  60. - (void)verticalMenuMoreView:(CGXVerticalMenuMoreView *)moreView
  61. RefreshScrollView:(CGXVerticalMenuMoreListView *)listView
  62. listViewInRow:(NSInteger)row;
  63. /*
  64. 子类滚到代理
  65. */
  66. - (void)verticalMenuMoreView:(CGXVerticalMenuMoreView *)moreView
  67. scrollViewDidScroll:(CGXVerticalMenuMoreListView *)listView
  68. listViewInRow:(NSInteger)row;
  69. - (void)verticalMenuMoreView:(CGXVerticalMenuMoreView *)moreView scrollViewDidEndDragging:(CGXVerticalMenuMoreListView *)listView
  70. willDecelerate:(BOOL)decelerate
  71. listViewInRow:(NSInteger)row;
  72. - (void)verticalMenuMoreView:(CGXVerticalMenuMoreView *)moreView
  73. scrollViewWillBeginDragging:(CGXVerticalMenuMoreListView *)listView
  74. listViewInRow:(NSInteger)row;
  75. - (void)verticalMenuMoreView:(CGXVerticalMenuMoreView *)moreView scrollViewDidEndDecelerating:(CGXVerticalMenuMoreListView *)listView
  76. listViewInRow:(NSInteger)row;
  77. - (void)verticalMenuMoreView:(CGXVerticalMenuMoreView *)moreView scrollViewDidEndScrollingAnimation:(CGXVerticalMenuMoreListView *)listView
  78. listViewInRow:(NSInteger)row;
  79. @end
  80. @interface CGXVerticalMenuMoreView : CGXVerticalMenuCustomBaseView
  81. @property (nonatomic, weak) id<CGXVerticalMenuMoreViewDelegate> delegate;
  82. /* 左侧背景 */
  83. @property (nonatomic , strong) UIColor *leftBgColor;
  84. /* 右侧背景 */
  85. @property (nonatomic , strong) UIColor *rightBgColor;
  86. /* 左侧默认宽度100 */
  87. @property (nonatomic, assign) CGFloat titleWidth;
  88. /* 选中目标index */
  89. @property (nonatomic , assign,readonly) NSInteger currentInteger;
  90. @property (nonatomic , strong,readonly) NSMutableArray <CGXVerticalMenuMoreListModel *> *dataArray;
  91. /*数据源*/
  92. - (void)updateListWithDataArray:(NSMutableArray<CGXVerticalMenuMoreListModel *> *)dataArray;
  93. /*更新某个下标数据使用*/
  94. - (void)updateListWistAtIndex:(NSInteger)index ItemModel:(CGXVerticalMenuMoreListModel *)itemModel;
  95. // 刷新数据
  96. - (void)reloadData;
  97. /**
  98. 选中目标index的item
  99. @param index 目标index
  100. */
  101. - (void)selectItemAtIndex:(NSInteger)index;
  102. /**
  103. 上一页
  104. */
  105. - (void)refreshLoadData;
  106. /**
  107. 下一页
  108. */
  109. - (void)refreshMoreLoadData;
  110. @end
  111. NS_ASSUME_NONNULL_END