RQCommonFooterView.m 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. if (viewModel.groupModel) {
  30. if (!RQObjectIsNil(self.viewModel.groupModel.footerBgColor)) {
  31. self.contentView.backgroundColor = self.viewModel.groupModel.footerBgColor;
  32. }
  33. if (!RQObjectIsNil(self.viewModel.groupModel.footerFont)) {
  34. self.contentLabel.font = self.viewModel.groupModel.footerFont;
  35. }
  36. if (!RQObjectIsNil(self.viewModel.groupModel.footerLabelColor)) {
  37. self.contentLabel.textColor = self.viewModel.groupModel.footerLabelColor;
  38. }
  39. if (RQStringIsNotEmpty(self.viewModel.groupModel.footer)) {
  40. self.contentLabel.text = self.viewModel.groupModel.footer;
  41. }
  42. } else {
  43. self.contentLabel.text = viewModel.footer;
  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. ///
  62. self.contentView.backgroundColor = RQ_LIST_BACKGROUNDCOLOR;
  63. }
  64. #pragma mark - 创建自控制器
  65. - (void)_setupSubViews{
  66. // label
  67. UILabel *contentLabel = [[UILabel alloc] init];
  68. contentLabel.textColor = RQColorFromHexString(@"#888888");
  69. contentLabel.font = RQRegularFont_14;
  70. contentLabel.numberOfLines = 0;
  71. contentLabel.textAlignment = NSTextAlignmentLeft;
  72. [self.contentView addSubview:contentLabel];
  73. self.contentLabel = contentLabel;
  74. }
  75. #pragma mark - 布局子控件
  76. - (void)_makeSubViewsConstraints{
  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