RQCommonHeaderView.m 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. self.contentLabel.text = viewModel.header;
  30. }
  31. #pragma mark - 私有方法
  32. - (instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier
  33. {
  34. if (self = [super initWithReuseIdentifier:reuseIdentifier]) {
  35. // 初始化
  36. [self _setup];
  37. // 创建自控制器
  38. [self _setupSubViews];
  39. // 布局子控件
  40. [self _makeSubViewsConstraints];
  41. }
  42. return self;
  43. }
  44. #pragma mark - 初始化
  45. - (void)_setup{
  46. self.contentView.backgroundColor = RQ_LIST_BACKGROUNDCOLOR;
  47. }
  48. #pragma mark - 创建自控制器
  49. - (void)_setupSubViews{
  50. // label
  51. UILabel *contentLabel = [[UILabel alloc] init];
  52. contentLabel.textColor = RQColorFromHexString(@"#888888");
  53. contentLabel.font = RQRegularFont_14;
  54. contentLabel.numberOfLines = 0;
  55. contentLabel.textAlignment = NSTextAlignmentLeft;
  56. [self.contentView addSubview:contentLabel];
  57. self.contentLabel = contentLabel;
  58. }
  59. #pragma mark - 布局子控件
  60. - (void)_makeSubViewsConstraints
  61. {
  62. [self.contentLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  63. make.left.mas_equalTo(self.contentView).mas_offset(20);
  64. make.centerY.mas_equalTo(self.contentView);
  65. make.size.mas_equalTo(CGSizeMake(RQ_SCREEN_WIDTH - 40, self.contentView.height));
  66. }];
  67. }
  68. @end