123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- //
- // RQCommonReusableView.m
- // YueXueChe
- //
- // Created by 张嵘 on 2018/12/19.
- // Copyright © 2018 lee. All rights reserved.
- //
- #import "RQCommonReusableView.h"
- #import "RQCommonGroupViewModel.h"
- @interface RQCommonReusableView ()
- /// viewModel
- @property (nonatomic, readwrite, strong) RQCommonGroupViewModel *viewModel;
- @property (nonatomic, readwrite, strong) UIView *line;
- @property (nonatomic, readwrite, strong) NSString *kind;
- @end
- @implementation RQCommonReusableView
- + (instancetype)reusableViewWithCollectionView:(UICollectionView *)collectionView OfKind:(NSString *)elementKind forIndexPath:(NSIndexPath *)indexPath {
- NSString *ID = [NSString stringWithFormat:@"%@%@", @"CommonReusableView",elementKind];
- [collectionView registerClass:[RQCommonReusableView class] forSupplementaryViewOfKind:elementKind withReuseIdentifier:ID];
- RQCommonReusableView *reusableView = [collectionView dequeueReusableSupplementaryViewOfKind:elementKind withReuseIdentifier:ID forIndexPath:indexPath];
- if (elementKind == UICollectionElementKindSectionHeader) {
- reusableView.backgroundColor = RQ_LIST_BACKGROUNDCOLOR;
- reusableView.headerContentLabel.hidden = NO;
- reusableView.footerContentLabel.hidden = YES;
- }else {
- reusableView.backgroundColor = RQ_LIST_BACKGROUNDCOLOR;
- reusableView.headerContentLabel.hidden = YES;
- reusableView.footerContentLabel.hidden = NO;
- }
- return reusableView;
- }
- - (void)bindViewModel:(RQCommonGroupViewModel *)viewModel {
- self.viewModel = viewModel;
-
- if (viewModel.groupModel) {
- if ([self.reuseIdentifier containsString:UICollectionElementKindSectionHeader]) {
- if (!RQObjectIsNil(self.viewModel.groupModel.headerBgColor)) {
- self.backgroundColor = self.viewModel.groupModel.headerLabelColor;
- }
-
- if (RQStringIsNotEmpty(self.viewModel.groupModel.header)) {
- [self initHeaderView];
- self.headerContentLabel.hidden = NO;
- }
-
- } else if ([self.reuseIdentifier containsString:UICollectionElementKindSectionFooter]) {
- if (!RQObjectIsNil(self.viewModel.groupModel.footerBgColor)) {
- self.backgroundColor = self.viewModel.groupModel.footerBgColor;
- }
-
- if (RQStringIsNotEmpty(self.viewModel.groupModel.footer)) {
- [self initFooterView];
- self.footerContentLabel.hidden = NO;
- }
- }
- } else {
- if (viewModel.header && viewModel.footer) {
- [self initHeaderView];
- [self initFooterView];
- self.headerContentLabel.hidden = NO;
- self.footerContentLabel.hidden = NO;
- } else if (viewModel.header || viewModel.footer) {
- if (viewModel.header && !viewModel.footer) {
- [self initHeaderView];
- self.headerContentLabel.hidden = NO;
- self.footerContentLabel.hidden = YES;
- }else if (!viewModel.header && viewModel.footer) {
- [self initFooterView];
- self.headerContentLabel.hidden = YES;
- self.footerContentLabel.hidden = NO;
- }
- } else {
- self.headerContentLabel.hidden = YES;
- self.footerContentLabel.hidden = YES;
- }
- }
- }
- - (void)initHeaderView {
- @weakify(self)
- [self addSubview:self.headerContentLabel];
- [_headerContentLabel mas_makeConstraints:^(MASConstraintMaker *make) {
- @strongify(self)
- make.centerY.mas_equalTo(self);
- make.left.mas_equalTo(self).mas_equalTo(11.f);
- make.right.mas_equalTo(self).mas_equalTo(-11.f);
- }];
- [self addSubview:self.line];
- [_line mas_makeConstraints:^(MASConstraintMaker *make) {
- @strongify(self)
- make.left.right.bottom.mas_equalTo(self);
- make.height.mas_offset(1);
- }];
- if (RQObjectIsNil(self.viewModel.groupModel)) {
- _headerContentLabel.text = self.viewModel.header;
- _headerContentLabel.font = self.viewModel.headerFont;
- } else {
- if (RQStringIsNotEmpty(self.viewModel.groupModel.header)) {
- _headerContentLabel.text = self.viewModel.groupModel.header;
- }
-
- if (!RQObjectIsNil(self.viewModel.groupModel.headerFont)) {
- _headerContentLabel.font = self.viewModel.groupModel.headerFont;
- }
-
- if (!RQObjectIsNil(self.viewModel.groupModel.headerLabelColor)) {
- _headerContentLabel.textColor = self.viewModel.groupModel.headerLabelColor;
- }
- }
- }
- - (void)initFooterView {
- @weakify(self)
- [self addSubview:self.footerContentLabel];
- [_footerContentLabel mas_makeConstraints:^(MASConstraintMaker *make) {
- @strongify(self)
- make.centerY.mas_equalTo(self);
- make.left.mas_equalTo(self).mas_equalTo(11.f);
- make.right.mas_equalTo(self).mas_equalTo(-11.f);
- }];
- [self addSubview:self.line];
- [_line mas_makeConstraints:^(MASConstraintMaker *make) {
- @strongify(self)
- make.left.right.bottom.mas_equalTo(self);
- make.height.mas_offset(1);
- }];
- if (RQObjectIsNil(self.viewModel.groupModel)) {
- _footerContentLabel.text = self.viewModel.footer;
- _footerContentLabel.font = self.viewModel.footerFont;
- } else {
- if (RQStringIsNotEmpty(self.viewModel.groupModel.footer)) {
- _footerContentLabel.text = self.viewModel.groupModel.footer;
- }
-
- if (!RQObjectIsNil(self.viewModel.groupModel.footerFont)) {
- _footerContentLabel.font = self.viewModel.groupModel.footerFont;
- }
-
- if (!RQObjectIsNil(self.viewModel.groupModel.headerLabelColor)) {
- _footerContentLabel.textColor = self.viewModel.groupModel.footerLabelColor;
- }
- }
- }
- - (UILabel *)headerContentLabel {
- if (!_headerContentLabel) {
- _headerContentLabel = [[UILabel alloc] init];
- _headerContentLabel.textColor = RQ_MAIN_TEXT_COLOR_1;
- _headerContentLabel.font = RQSemiboldFont(19);
- _headerContentLabel.numberOfLines = 0;
- _headerContentLabel.textAlignment = NSTextAlignmentLeft;
- }
- return _headerContentLabel;
- }
- - (UILabel *)footerContentLabel {
- if (!_footerContentLabel) {
- _footerContentLabel = [[UILabel alloc] init];
- _footerContentLabel.textColor = RQ_MAIN_TEXT_COLOR_1;
- _footerContentLabel.font = RQSemiboldFont(19);
- _footerContentLabel.numberOfLines = 0;
- _footerContentLabel.textAlignment = NSTextAlignmentLeft;
- }
- return _footerContentLabel;
- }
- - (UIView *)line {
- if (!_line) {
- _line = [[UIView alloc] init];
- _line.backgroundColor = RQ_MAIN_BACKGROUNDCOLOR;
- }
- return _line;
- }
- @end
|