RQCommonHeaderView.m 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. //
  2. // RQCommonHeaderView.m
  3. // RQCommon
  4. //
  5. // Created by 张嵘 on 2018/11/27.
  6. // Copyright © 2018 张嵘. All rights reserved.
  7. //
  8. #import "RQCommonHeaderView.h"
  9. #import "RQCommonGroupViewModel.h"
  10. @interface RQCommonHeaderView ()
  11. /// viewModel
  12. @property (nonatomic, readwrite, strong) RQCommonGroupViewModel *viewModel;
  13. /// contentLabel
  14. @property (nonatomic, readwrite, weak) UILabel *contentLabel;
  15. @end
  16. @implementation RQCommonHeaderView
  17. #pragma mark - 公共方法
  18. + (instancetype)headerViewWithTableView:(UITableView *)tableView{
  19. static NSString *ID = @"CommonHeader";
  20. RQCommonHeaderView *header = [tableView dequeueReusableHeaderFooterViewWithIdentifier:ID];
  21. if (header == nil) {
  22. // 缓存池中没有, 自己创建
  23. header = [[self alloc] initWithReuseIdentifier:ID];
  24. }
  25. return header;
  26. }
  27. - (void)bindViewModel:(RQCommonGroupViewModel *)viewModel {
  28. self.viewModel = viewModel;
  29. if (viewModel.groupModel) {
  30. if (!RQObjectIsNil(self.viewModel.groupModel.headerBgColor)) {
  31. self.contentView.backgroundColor = self.viewModel.groupModel.headerBgColor;
  32. }
  33. if (!RQObjectIsNil(self.viewModel.groupModel.headerFont)) {
  34. self.contentLabel.font = self.viewModel.groupModel.headerFont;
  35. }
  36. if (!RQObjectIsNil(self.viewModel.groupModel.headerLabelColor)) {
  37. self.contentLabel.textColor = self.viewModel.groupModel.headerLabelColor;
  38. }
  39. if (RQStringIsNotEmpty(self.viewModel.groupModel.header)) {
  40. self.contentLabel.text = self.viewModel.groupModel.header;
  41. }
  42. } else {
  43. self.contentLabel.text = viewModel.header;
  44. }
  45. }
  46. #pragma mark - 私有方法
  47. - (instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier
  48. {
  49. if (self = [super initWithReuseIdentifier:reuseIdentifier]) {
  50. // 初始化
  51. [self _setup];
  52. // 创建自控制器
  53. [self _setupSubViews];
  54. // 布局子控件
  55. [self _makeSubViewsConstraints];
  56. }
  57. return self;
  58. }
  59. #pragma mark - 初始化
  60. - (void)_setup {
  61. self.contentView.backgroundColor = RQ_LIST_BACKGROUNDCOLOR;
  62. }
  63. #pragma mark - 创建自控制器
  64. - (void)_setupSubViews{
  65. // label
  66. UILabel *contentLabel = [[UILabel alloc] init];
  67. contentLabel.textColor = RQColorFromHexString(@"#888888");
  68. contentLabel.font = RQRegularFont_14;
  69. contentLabel.numberOfLines = 0;
  70. contentLabel.textAlignment = NSTextAlignmentLeft;
  71. [self.contentView addSubview:contentLabel];
  72. self.contentLabel = contentLabel;
  73. }
  74. #pragma mark - 布局子控件
  75. - (void)_makeSubViewsConstraints
  76. {
  77. [self.contentLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  78. make.left.mas_equalTo(self.contentView).mas_offset(20);
  79. make.centerY.mas_equalTo(self.contentView);
  80. make.size.mas_equalTo(CGSizeMake(RQ_SCREEN_WIDTH - 40, self.contentView.height));
  81. }];
  82. }
  83. @end