MultilevelMenu.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. //
  2. // MultilevelMenu.h
  3. // MultilevelMenu
  4. //
  5. // Created by Kingson on 2021/4/25.
  6. //
  7. #import <UIKit/UIKit.h>
  8. #define kLeftWidth 100
  9. typedef void(^ChooseBlock) (NSString *chooseContent,NSMutableArray *chooseArr,NSIndexPath *indexPath);
  10. @interface MultilevelMenu : UIView<UITableViewDataSource,UITableViewDelegate,UICollectionViewDelegateFlowLayout,UICollectionViewDataSource,UICollectionViewDelegate>
  11. @property(strong,nonatomic,readonly) NSArray * allData;
  12. @property(copy,nonatomic,readonly) id block;
  13. /**
  14. * 是否 记录滑动位置
  15. */
  16. @property(assign,nonatomic) BOOL isRecordLastScroll;
  17. /**
  18. * 记录滑动位置 是否需要 动画
  19. */
  20. @property(assign,nonatomic) BOOL isRecordLastScrollAnimated;
  21. /**
  22. * 记录已选中的数据索引
  23. */
  24. @property(assign,nonatomic,readonly) NSInteger selectIndex;
  25. /**
  26. * 为了 不修改原来的,因此增加了一个属性,选中指定 行数
  27. */
  28. @property(assign,nonatomic) NSInteger needToScorllerIndex;
  29. /**
  30. * 颜色属性配置
  31. */
  32. /**
  33. * 左边背景颜色
  34. */
  35. @property(strong,nonatomic) UIColor * leftBgColor;
  36. /**
  37. * 左边点中文字颜色
  38. */
  39. @property(strong,nonatomic) UIColor * leftSelectColor;
  40. /**
  41. * 左边点中背景颜色
  42. */
  43. @property(strong,nonatomic) UIColor * leftSelectBgColor;
  44. /**
  45. * 左边未点中文字颜色
  46. */
  47. @property(strong,nonatomic) UIColor * leftUnSelectColor;
  48. /**
  49. * 左边未点中背景颜色
  50. */
  51. @property(strong,nonatomic) UIColor * leftUnSelectBgColor;
  52. /**
  53. * tablew 的分割线
  54. */
  55. @property(strong,nonatomic) UIColor * leftSeparatorColor;
  56. @property(nonatomic,strong)NSMutableArray * dataArr;
  57. @property(nonatomic,strong)NSMutableArray * choosedArr;
  58. @property(nonatomic,strong)NSMutableDictionary * choosedDic;
  59. @property(nonatomic,copy)ChooseBlock chooseBlock;
  60. @property (nonatomic,assign)BOOL ifAllSelected;
  61. @property (nonatomic,assign)BOOL ifAllSelecteSwitch;
  62. @property(strong,nonatomic ) UICollectionView * rightCollection;
  63. -(instancetype)initWithFrame:(CGRect)frame WithData:(NSArray*)data withSelectIndex:(void(^)(NSInteger left,NSInteger right,id info))selectIndex;
  64. @end
  65. @interface rightMeun : NSObject
  66. /**
  67. * 菜单图片名
  68. */
  69. @property(copy,nonatomic) NSString * urlName;
  70. /**
  71. * 菜单名
  72. */
  73. @property(copy,nonatomic) NSString * meunName;
  74. /**
  75. * 菜单ID
  76. */
  77. @property(copy,nonatomic) NSString * ID;
  78. /**
  79. * 父级ID
  80. */
  81. @property(assign,nonatomic) NSInteger parentID;
  82. @property (nonatomic, readwrite, strong) CGXVerticalMenuMoreListSectionItemModel *model;
  83. /**
  84. * 下一级菜单
  85. */
  86. @property(strong,nonatomic) NSArray * nextArray;
  87. /**
  88. * 菜单层数
  89. */
  90. @property(assign,nonatomic) NSInteger meunNumber;
  91. @property(assign,nonatomic) float offsetScorller;
  92. /**
  93. * 模型数组
  94. */
  95. @property(nonatomic,strong) NSMutableArray *allModelArr;
  96. /// 根据ID和MenuName判断RightMenu是否相同
  97. /// @param rightMenu 需要比较的对象
  98. -(BOOL)isEualToRightMeun:(rightMeun *)rightMenu;
  99. @end