123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- //
- // 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
|