RQCommonFooterView.m 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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. if (self.viewModel.groupModel.footerBgColor == UIColor.clearColor) {
  33. self.hidden = YES;
  34. } else {
  35. self.hidden = NO;
  36. }
  37. }
  38. if (RQStringIsNotEmpty(self.viewModel.groupModel.footer)) {
  39. self.hidden = NO;
  40. self.contentLabel.text = self.viewModel.groupModel.footer;
  41. if (!RQObjectIsNil(self.viewModel.groupModel.footerFont)) {
  42. self.contentLabel.font = self.viewModel.groupModel.footerFont;
  43. }
  44. if (!RQObjectIsNil(self.viewModel.groupModel.footerLabelColor)) {
  45. self.contentLabel.textColor = self.viewModel.groupModel.footerLabelColor;
  46. }
  47. [self.contentLabel mas_updateConstraints:^(MASConstraintMaker *make) {
  48. make.size.mas_equalTo(CGSizeMake(RQ_SCREEN_WIDTH - 40, self.viewModel.groupModel.footerHeight));
  49. }];
  50. }
  51. } else {
  52. self.contentLabel.text = viewModel.footer;
  53. }
  54. }
  55. #pragma mark - 私有方法
  56. - (instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier
  57. {
  58. if (self = [super initWithReuseIdentifier:reuseIdentifier]) {
  59. // 初始化
  60. [self _setup];
  61. // 创建自控制器
  62. [self _setupSubViews];
  63. // 布局子控件
  64. [self _makeSubViewsConstraints];
  65. }
  66. return self;
  67. }
  68. #pragma mark - 初始化
  69. - (void)_setup{
  70. ///
  71. self.contentView.backgroundColor = RQ_LIST_BACKGROUNDCOLOR;
  72. }
  73. #pragma mark - 创建自控制器
  74. - (void)_setupSubViews{
  75. // label
  76. UILabel *contentLabel = [[UILabel alloc] init];
  77. contentLabel.textColor = RQColorFromHexString(@"#888888");
  78. contentLabel.font = RQRegularFont_14;
  79. contentLabel.numberOfLines = 0;
  80. contentLabel.textAlignment = NSTextAlignmentLeft;
  81. [self.contentView addSubview:contentLabel];
  82. self.contentLabel = contentLabel;
  83. }
  84. #pragma mark - 布局子控件
  85. - (void)_makeSubViewsConstraints{
  86. @weakify(self)
  87. [self.contentLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  88. @strongify(self)
  89. make.left.mas_equalTo(self.contentView).mas_offset(20);
  90. make.centerY.mas_equalTo(self.contentView);
  91. make.size.mas_equalTo(CGSizeMake(RQ_SCREEN_WIDTH - 40, self.contentView.height));
  92. }];
  93. }
  94. @end