RQCommonFooterView.m 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. //
  2. // RQCommonFooterView.m
  3. // RQCommon
  4. //
  5. // Created by 张嵘 on 2018/11/27.
  6. // Copyright © 2018 张嵘. All rights reserved.
  7. //
  8. #import "RQCommonFooterView.h"
  9. #import "RQCommonGroupViewModel.h"
  10. @interface RQCommonFooterView ()
  11. /// viewModel
  12. @property (nonatomic, readwrite, strong) RQCommonGroupViewModel *viewModel;
  13. /// contentLabel
  14. @property (nonatomic, readwrite, weak) UILabel *contentLabel;
  15. @end
  16. @implementation RQCommonFooterView
  17. #pragma mark - 公共方法
  18. + (instancetype)footerViewWithTableView:(UITableView *)tableView{
  19. static NSString *ID = @"CommonFooter";
  20. RQCommonFooterView *footer = [tableView dequeueReusableHeaderFooterViewWithIdentifier:ID];
  21. if (footer == nil) {
  22. // 缓存池中没有, 自己创建
  23. footer = [[self alloc] initWithReuseIdentifier:ID];
  24. }
  25. return footer;
  26. }
  27. - (void)bindViewModel:(RQCommonGroupViewModel *)viewModel{
  28. self.viewModel = viewModel;
  29. self.contentLabel.text = viewModel.footer;
  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. ///
  47. self.contentView.backgroundColor = RQ_LIST_BACKGROUNDCOLOR;
  48. }
  49. #pragma mark - 创建自控制器
  50. - (void)_setupSubViews{
  51. // label
  52. UILabel *contentLabel = [[UILabel alloc] init];
  53. contentLabel.textColor = RQColorFromHexString(@"#888888");
  54. contentLabel.font = RQRegularFont_14;
  55. contentLabel.numberOfLines = 0;
  56. contentLabel.textAlignment = NSTextAlignmentLeft;
  57. [self.contentView addSubview:contentLabel];
  58. self.contentLabel = contentLabel;
  59. }
  60. #pragma mark - 布局子控件
  61. - (void)_makeSubViewsConstraints{
  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