RQCommonReusableView.m 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. //
  2. // RQCommonReusableView.m
  3. // YueXueChe
  4. //
  5. // Created by 张嵘 on 2018/12/19.
  6. // Copyright © 2018 lee. All rights reserved.
  7. //
  8. #import "RQCommonReusableView.h"
  9. #import "RQCommonGroupViewModel.h"
  10. @interface RQCommonReusableView ()
  11. /// viewModel
  12. @property (nonatomic, readwrite, strong) RQCommonGroupViewModel *viewModel;
  13. @property (nonatomic, readwrite, strong) UIView *line;
  14. @property (nonatomic, readwrite, strong) NSString *kind;
  15. @end
  16. @implementation RQCommonReusableView
  17. + (instancetype)reusableViewWithCollectionView:(UICollectionView *)collectionView OfKind:(NSString *)elementKind forIndexPath:(NSIndexPath *)indexPath {
  18. NSString *ID = [NSString stringWithFormat:@"%@%@", @"CommonReusableView",elementKind];
  19. [collectionView registerClass:[RQCommonReusableView class] forSupplementaryViewOfKind:elementKind withReuseIdentifier:ID];
  20. RQCommonReusableView *reusableView = [collectionView dequeueReusableSupplementaryViewOfKind:elementKind withReuseIdentifier:ID forIndexPath:indexPath];
  21. if (elementKind == UICollectionElementKindSectionHeader) {
  22. reusableView.backgroundColor = UIColor.whiteColor;
  23. }else {
  24. reusableView.backgroundColor = RQ_MAIN_BACKGROUNDCOLOR;
  25. }
  26. return reusableView;
  27. }
  28. - (void)bindViewModel:(RQCommonGroupViewModel *)viewModel {
  29. self.viewModel = viewModel;
  30. if (viewModel.header && viewModel.footer) {
  31. [self initHeaderView];
  32. [self initFooterView];
  33. }else if (viewModel.header || viewModel.footer) {
  34. if (viewModel.header && !viewModel.footer) {
  35. [self initHeaderView];
  36. self.footerContentLabel.hidden = YES;
  37. }else if (!viewModel.header && viewModel.footer) {
  38. [self initFooterView];
  39. self.headerContentLabel.hidden = YES;
  40. }
  41. }else {
  42. self.headerContentLabel.hidden = YES;
  43. self.footerContentLabel.hidden = YES;
  44. }
  45. }
  46. - (void)initHeaderView {
  47. [self addSubview:self.headerContentLabel];
  48. [_headerContentLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  49. make.centerY.mas_equalTo(self);
  50. make.left.mas_equalTo(self).mas_equalTo(11.f);
  51. make.right.mas_equalTo(self).mas_equalTo(-11.f);
  52. }];
  53. [self addSubview:self.line];
  54. [_line mas_makeConstraints:^(MASConstraintMaker *make) {
  55. make.left.right.bottom.mas_equalTo(self);
  56. make.height.mas_offset(1);
  57. }];
  58. _headerContentLabel.text = self.viewModel.header;
  59. }
  60. - (void)initFooterView {
  61. [self addSubview:self.footerContentLabel];
  62. [_footerContentLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  63. make.centerY.mas_equalTo(self);
  64. make.left.mas_equalTo(self).mas_equalTo(11.f);
  65. make.right.mas_equalTo(self).mas_equalTo(-11.f);
  66. }];
  67. [self addSubview:self.line];
  68. [_line mas_makeConstraints:^(MASConstraintMaker *make) {
  69. make.left.right.bottom.mas_equalTo(self);
  70. make.height.mas_offset(1);
  71. }];
  72. _footerContentLabel.text = self.viewModel.footer;
  73. }
  74. - (UILabel *)headerContentLabel {
  75. if (!_headerContentLabel) {
  76. _headerContentLabel = [[UILabel alloc] init];
  77. _headerContentLabel.textColor = RQColorFromHexString(@"#0B1B27");
  78. _headerContentLabel.font = RQRegularFont_12;
  79. _headerContentLabel.numberOfLines = 0;
  80. _headerContentLabel.textAlignment = NSTextAlignmentLeft;
  81. }
  82. return _headerContentLabel;
  83. }
  84. - (UILabel *)footerContentLabel {
  85. if (!_footerContentLabel) {
  86. _footerContentLabel = [[UILabel alloc] init];
  87. _footerContentLabel.textColor = RQColorFromHexString(@"#0B1B27");
  88. _footerContentLabel.font = RQRegularFont_12;
  89. _footerContentLabel.numberOfLines = 0;
  90. _footerContentLabel.textAlignment = NSTextAlignmentLeft;
  91. }
  92. return _footerContentLabel;
  93. }
  94. - (UIView *)line {
  95. if (!_line) {
  96. _line = [[UIView alloc] init];
  97. _line.backgroundColor = RQ_MAIN_BACKGROUNDCOLOR;
  98. }
  99. return _line;
  100. }
  101. @end