// // PBPersonChooseTableViewCell.m // IphoneBIMe // // Created by zjf on 2020/12/3. // Copyright © 2020 ProBIM. All rights reserved. // #import "PBPersonChooseTableViewCell.h" #import "PBExamineAddModel.h" #import "PBPersonListView.h" #import "PBPersonModel.h" #import "MSSAutoresizeLabelFlowLayout.h" #import "PBPersonListCollectionViewCell.h" #import "MSSAutoresizeLabelFlowConfig.h" static NSString *const cellId = @"cellId"; @interface PBPersonChooseTableViewCell() @property (nonatomic,strong) UICollectionView *collection; @property (nonatomic,strong) NSMutableArray *data; //@property (nonatomic,copy) selectedHandler handler; @property (nonatomic, weak) UILabel *titleL; @property (nonatomic, weak) UILabel *personL; @property (nonatomic, weak) UIButton *chooseBtn; @property (nonatomic, weak) UIButton *totalNumberBtn; @property (nonatomic, weak) UIView *collectionBg; @property (nonatomic, assign) BOOL isLayout; @property (nonatomic, assign) CGFloat height; @end @implementation PBPersonChooseTableViewCell - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { [self setupUI]; } return self; } - (void)setupUI { // self.contentView.backgroundColor = [UIColor blueColor]; UILabel *titleL = [UILabel z_labelWithText:@"检查人" Color:PBColor(102, 102, 102) isBold:NO Font:15]; [self.contentView addSubview:titleL]; [titleL mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.contentView).offset(15); make.left.equalTo(self.contentView).offset(15); make.width.equalTo(@100); make.height.equalTo(@18); }]; UILabel *personL = [UILabel z_labelWithText:@"请指定检查人" Color:PBColor(79, 40, 58) isBold:NO Font:15]; [self.contentView addSubview:personL]; [personL mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.contentView).offset(116); make.right.equalTo(self.contentView).offset(-15); make.top.equalTo(titleL); make.height.equalTo(@18); }]; UIButton *chooseBtn = [UIButton z_bgImageButton:[UIImage imageNamed:@"set_arrow_right"]]; [chooseBtn addTarget:self action:@selector(chooseTime) forControlEvents:UIControlEventTouchUpInside]; [self.contentView addSubview:chooseBtn]; [chooseBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.equalTo(titleL); make.size.mas_equalTo(CGSizeMake(16, 16)); make.right.equalTo(self.contentView).offset(-15); }]; UIButton *btn = [[UIButton alloc] init]; [btn addTarget:self action:@selector(chooseTime) forControlEvents:UIControlEventTouchUpInside]; [self.contentView addSubview:btn]; [btn mas_makeConstraints:^(MASConstraintMaker *make) { make.top.left.right.bottom.equalTo(self.contentView); }]; self.titleL = titleL; self.personL = personL; self.chooseBtn = chooseBtn; // UIView *collectionBg = [[UIView alloc] init]; // collectionBg.backgroundColor = [UIColor yellowColor]; // [self.contentView addSubview:collectionBg]; // [collectionBg mas_makeConstraints:^(MASConstraintMaker *make) { // make.top.equalTo(self.contentView).offset(53); // make.left.equalTo(self.contentView).offset(100); // make.right.equalTo(self.contentView).offset(-20); // make.height.equalTo(@1); // make.bottom.equalTo(self.contentView).offset(-15); // }]; MSSAutoresizeLabelFlowLayout *layout = [[MSSAutoresizeLabelFlowLayout alloc]init]; layout.delegate = self; layout.dataSource = self; self.collection = [[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:layout]; self.collection.backgroundColor = [UIColor whiteColor]; self.collection.allowsMultipleSelection = YES; self.collection.delegate = self; self.collection.dataSource = self; // self.collection.scrollEnabled = NO; [self.collection registerClass:[PBPersonListCollectionViewCell class] forCellWithReuseIdentifier:cellId]; [self.contentView addSubview:self.collection]; [self.collection mas_makeConstraints:^(MASConstraintMaker *make) { // make.top.left.right.bottom.equalTo(collectionBg); make.top.equalTo(self.contentView).offset(53); make.left.equalTo(self.contentView).offset(100); make.right.equalTo(self.contentView).offset(-20); make.height.equalTo(@1); make.bottom.equalTo(self.contentView).offset(-15); }]; UIButton *totalNumberBtn = [[UIButton alloc] init]; [totalNumberBtn addTarget:self action:@selector(totalNumberBtnAction) forControlEvents:UIControlEventTouchUpInside]; [totalNumberBtn setTitle:@"查看全部" forState:UIControlStateNormal]; [totalNumberBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; totalNumberBtn.backgroundColor = PBColor(0, 122, 255); [self.contentView addSubview:totalNumberBtn]; [totalNumberBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.collection.mas_bottom); make.left.equalTo(personL); make.height.equalTo(@32); }]; totalNumberBtn.layer.cornerRadius = 6; totalNumberBtn.layer.masksToBounds = YES; self.totalNumberBtn = totalNumberBtn; self.totalNumberBtn.hidden = YES; // self.collectionBg = collectionBg; } - (void)totalNumberBtnAction { NSLog(@"查看全部人员"); if (self.LookAllBlock) { self.LookAllBlock(); } } - (void)chooseTime { if (self.ChooseBlock) { self.ChooseBlock(); } } - (void)setExamineAddModel:(PBExamineAddModel *)examineAddModel { _examineAddModel = examineAddModel; self.data = [[NSMutableArray alloc] init]; self.data = examineAddModel.personArr.mutableCopy; [self.collection reloadData]; [self.collection layoutIfNeeded]; if (self.examineAddModel.personArr.count > 0) { [self.collection mas_updateConstraints:^(MASConstraintMaker *make) { make.height.equalTo(@(76)); // make.bottom.equalTo(self.contentView).offset(-(bottom)); }]; }else { [self.collection mas_updateConstraints:^(MASConstraintMaker *make) { make.height.equalTo(@(1)); // make.bottom.equalTo(self.contentView).offset(-(bottom)); }]; } self.titleL.text = examineAddModel.title; // if (examineAddModel.personArr.count > 10) { // self.totalNumberBtn.hidden = NO; // }else { // self.totalNumberBtn.hidden = YES; // } if (examineAddModel.personArr.count > 0) { self.personL.textColor = PBColor(40, 58, 79); self.personL.text = [NSString stringWithFormat:@"已选择%zd人", examineAddModel.personArr.count]; }else { self.personL.textColor = PBColor(204, 204, 204); self.personL.text = examineAddModel.prompt; } // if (self.data.count == 0) { // [self.collectionBg mas_updateConstraints:^(MASConstraintMaker *make) { // make.height.equalTo(@1); // }]; // } // [self.collection setNeedsLayout]; // [self.collection layoutIfNeeded]; // if (self.examineAddModel.personArr.count > 0) { // NSLog(@"hhhhhhhhhhhhhhhhh-%f-%f",self.collection.contentSize.height,self.height); // NSLog(@"wwwwwwwwwwwww-%f",self.collection.collectionViewLayout.collectionViewContentSize.height); // [self.collection mas_updateConstraints:^(MASConstraintMaker *make) { // make.height.equalTo(@(self.collection.collectionViewLayout.collectionViewContentSize.height)); //// make.bottom.equalTo(self.contentView).offset(-(bottom)); // }]; // }else { // [self.collection mas_updateConstraints:^(MASConstraintMaker *make) { // make.height.equalTo(@(1)); //// make.bottom.equalTo(self.contentView).offset(-(bottom)); // }]; // } } - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { return 1; } - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { // if (self.data.count > 10) { // return 10; // }else { return self.data.count; // } } - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { PBPersonListCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellId forIndexPath:indexPath]; PBPersonModel *model = self.data[indexPath.item]; [cell configCellWithTitle:model.RealName]; return cell; } - (NSString *)titleForLabelAtIndexPath:(NSIndexPath *)indexPath { PBPersonModel *model = self.data[indexPath.item]; return model.RealName; } - (void)layoutFinishWithNumberOfline:(NSInteger)number { NSLog(@"===-=-=-=-=-=-=-=%zd",number); // static NSInteger numberCount; // if (numberCount == number) { // return; // } // numberCount = number; MSSAutoresizeLabelFlowConfig *config = [MSSAutoresizeLabelFlowConfig shareConfig]; CGFloat h = config.contentInsets.top+config.contentInsets.bottom+config.itemHeight*number+config.lineSpace*(number-1); self.height = h; NSLog(@"mmmmmmmmmmmmmmmm-%f",h); // [self.contentView mas_updateConstraints:^(MASConstraintMaker *make) { // make.bottom.equalTo(self.collection.mas_bottom).offset(15); // }]; // self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y, self.frame.size.width, h); // [UIView animateWithDuration:0.2 animations:^{ // self.collection.frame = self.bounds; // }]; // [self.collection mas_updateConstraints:^(MASConstraintMaker *make) { // make.height.equalTo(@(h)); // }]; // [self.contentView layoutIfNeeded]; // CGFloat botton; // if (self.examineAddModel.personArr.count > 10) { // botton = 15.f + 32.f; // self.totalNumberBtn.hidden = NO; // [self.totalNumberBtn setTitle:[NSString stringWithFormat:@"查看全部%zd个%@", self.examineAddModel.personArr.count, self.examineAddModel.title] forState:UIControlStateNormal]; // }else { // botton = 15.f; // self.totalNumberBtn.hidden = YES; // } // [self.collection mas_updateConstraints:^(MASConstraintMaker *make) { // make.bottom.equalTo(self.contentView).offset(-(botton)); // }]; // CGFloat bottom; // if (self.examineAddModel.personArr.count > 10) { // self.totalNumberBtn.hidden = NO; // bottom = 32 + 15; // }else { // self.totalNumberBtn.hidden = YES; // bottom = 15; // } // NSLog(@"======%f",h); // if (h <= 0) { // h = 1.f; // } // self.examineAddModel.height = h; // [self.collection mas_updateConstraints:^(MASConstraintMaker *make) { // make.height.equalTo(@(h)); // make.bottom.equalTo(self.contentView).offset(-(bottom)); // }]; // if (self.examineAddModel.height == 0) { //// self.examineAddModel.height = h; // if (self.ReLoadBlock) { // self.ReLoadBlock(h); // } // } } - (void)awakeFromNib { [super awakeFromNib]; // Initialization code } - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; // Configure the view for the selected state } @end