// // RQCommonHeaderView.m // RQCommon // // Created by 张嵘 on 2018/11/27. // Copyright © 2018 张嵘. All rights reserved. // #import "RQCommonHeaderView.h" #import "RQCommonGroupViewModel.h" @interface RQCommonHeaderView () /// viewModel @property (nonatomic, readwrite, strong) RQCommonGroupViewModel *viewModel; /// contentLabel @property (nonatomic, readwrite, weak) UILabel *contentLabel; @end @implementation RQCommonHeaderView #pragma mark - 公共方法 + (instancetype)headerViewWithTableView:(UITableView *)tableView{ static NSString *ID = @"CommonHeader"; RQCommonHeaderView *header = [tableView dequeueReusableHeaderFooterViewWithIdentifier:ID]; if (header == nil) { // 缓存池中没有, 自己创建 header = [[self alloc] initWithReuseIdentifier:ID]; } return header; } - (void)bindViewModel:(RQCommonGroupViewModel *)viewModel { self.viewModel = viewModel; if (viewModel.groupModel) { if (!RQObjectIsNil(self.viewModel.groupModel.headerBgColor)) { self.contentView.backgroundColor = self.viewModel.groupModel.headerBgColor; if (self.viewModel.groupModel.headerBgColor == UIColor.clearColor) { self.hidden = YES; } else { self.hidden = NO; } } if (RQStringIsNotEmpty(self.viewModel.groupModel.header)) { self.hidden = NO; self.contentLabel.text = self.viewModel.groupModel.header; if (!RQObjectIsNil(self.viewModel.groupModel.headerFont)) { self.contentLabel.font = self.viewModel.groupModel.headerFont; } if (!RQObjectIsNil(self.viewModel.groupModel.headerLabelColor)) { self.contentLabel.textColor = self.viewModel.groupModel.headerLabelColor; } [self.contentLabel mas_updateConstraints:^(MASConstraintMaker *make) { make.size.mas_equalTo(CGSizeMake(RQ_SCREEN_WIDTH - 40, self.viewModel.groupModel.headerHeight)); }]; } } else { self.contentLabel.text = viewModel.header; } } #pragma mark - 私有方法 - (instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier { if (self = [super initWithReuseIdentifier:reuseIdentifier]) { // 初始化 [self _setup]; // 创建自控制器 [self _setupSubViews]; // 布局子控件 [self _makeSubViewsConstraints]; } return self; } #pragma mark - 初始化 - (void)_setup{ self.contentView.backgroundColor = RQ_LIST_BACKGROUNDCOLOR; } #pragma mark - 创建自控制器 - (void)_setupSubViews{ // label UILabel *contentLabel = [[UILabel alloc] init]; contentLabel.textColor = RQColorFromHexString(@"#888888"); contentLabel.font = RQRegularFont_14; contentLabel.numberOfLines = 0; contentLabel.textAlignment = NSTextAlignmentLeft; [self.contentView addSubview:contentLabel]; self.contentLabel = contentLabel; } #pragma mark - 布局子控件 - (void)_makeSubViewsConstraints { @weakify(self) [self.contentLabel mas_makeConstraints:^(MASConstraintMaker *make) { @strongify(self) make.left.mas_equalTo(self.contentView).mas_offset(20); make.centerY.mas_equalTo(self.contentView); make.size.mas_equalTo(CGSizeMake(RQ_SCREEN_WIDTH - 40, self.contentView.height)); }]; } @end