From f86647c644b10a03300906aac377505ad1c24c98 Mon Sep 17 00:00:00 2001 From: zjf <zhangjf@probim.com.cn> Date: Mon, 13 Mar 2023 13:33:04 +0800 Subject: [PATCH] 项目搜索历史标签 及 现场 新增标签更换库 collection view 添加背景颜色 cell修改样式 --- IphoneBIMe/IphoneBIMe/Classes/ProjectList/Views/AutoCollectView/KeyWordCell.m | 38 +++ IphoneBIMe/IphoneBIMe/Classes/ProjectList/Views/AutoCollectView/LBKeyWordLayout.h | 13 + IphoneBIMe/IphoneBIMe/Classes/ProjectList/Views/PBProjectSearchView.m | 54 +++- IphoneBIMe/IphoneBIMe/Classes/Project/Examine/AddViews/PBPersonChooseTableViewCell.m | 147 +----------- IphoneBIMe/IphoneBIMe.xcodeproj/project.pbxproj | 20 + IphoneBIMe/IphoneBIMe/Classes/Project/Examine/ViewControllers/PBAddExamineViewController.m | 94 ++++---- IphoneBIMe/IphoneBIMe/Classes/Project/Examine/ViewControllers/PBCheckTaskViewController.m | 108 ++++----- IphoneBIMe/IphoneBIMe/Classes/ProjectList/Views/AutoCollectView/KeyWordCell.h | 18 + IphoneBIMe/IphoneBIMe/Classes/ProjectList/Views/AutoCollectView/LBKeyWordLayout.m | 151 +++++++++++++ 9 files changed, 394 insertions(+), 249 deletions(-) diff --git a/IphoneBIMe/IphoneBIMe.xcodeproj/project.pbxproj b/IphoneBIMe/IphoneBIMe.xcodeproj/project.pbxproj index 4f91af3..dd71f48 100644 --- a/IphoneBIMe/IphoneBIMe.xcodeproj/project.pbxproj +++ b/IphoneBIMe/IphoneBIMe.xcodeproj/project.pbxproj @@ -268,6 +268,8 @@ 2CFB177E2101CC1200B6BF1A /* PBModelsTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 2CFB177D2101CC1200B6BF1A /* PBModelsTableViewCell.m */; }; 2CFD790624C02CA9006B6E75 /* PBInputCodeTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 2CFD790524C02CA8006B6E75 /* PBInputCodeTableViewCell.m */; }; 4C07019729B85E4000F29889 /* PBNewVehicleTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C07019629B85E4000F29889 /* PBNewVehicleTableViewCell.m */; }; + 4C0701B729BED74000F29889 /* KeyWordCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0701B329BED74000F29889 /* KeyWordCell.m */; }; + 4C0701B829BED74000F29889 /* LBKeyWordLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C0701B529BED74000F29889 /* LBKeyWordLayout.m */; }; 4C385C912988F3DF00D9F626 /* SGScanViewConfigure.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C385C742988F3DF00D9F626 /* SGScanViewConfigure.m */; }; 4C385C922988F3DF00D9F626 /* SGScanView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C385C752988F3DF00D9F626 /* SGScanView.m */; }; 4C385C932988F3DF00D9F626 /* SGQRCode.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 4C385C782988F3DF00D9F626 /* SGQRCode.bundle */; }; @@ -1763,6 +1765,10 @@ 2E141B7B69B652435715D5BB /* Pods-IphoneBIMe.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-IphoneBIMe.release.xcconfig"; path = "Pods/Target Support Files/Pods-IphoneBIMe/Pods-IphoneBIMe.release.xcconfig"; sourceTree = "<group>"; }; 4C07019529B85E4000F29889 /* PBNewVehicleTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PBNewVehicleTableViewCell.h; sourceTree = "<group>"; }; 4C07019629B85E4000F29889 /* PBNewVehicleTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PBNewVehicleTableViewCell.m; sourceTree = "<group>"; }; + 4C0701B329BED74000F29889 /* KeyWordCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KeyWordCell.m; sourceTree = "<group>"; }; + 4C0701B429BED74000F29889 /* LBKeyWordLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LBKeyWordLayout.h; sourceTree = "<group>"; }; + 4C0701B529BED74000F29889 /* LBKeyWordLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LBKeyWordLayout.m; sourceTree = "<group>"; }; + 4C0701B629BED74000F29889 /* KeyWordCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KeyWordCell.h; sourceTree = "<group>"; }; 4C385C722988F3DF00D9F626 /* SGQRCode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SGQRCode.h; sourceTree = "<group>"; }; 4C385C742988F3DF00D9F626 /* SGScanViewConfigure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SGScanViewConfigure.m; sourceTree = "<group>"; }; 4C385C752988F3DF00D9F626 /* SGScanView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SGScanView.m; sourceTree = "<group>"; }; @@ -2271,6 +2277,7 @@ 2C2A6F0E20F8948C00218D5C /* Views */ = { isa = PBXGroup; children = ( + 4C0701B229BED74000F29889 /* AutoCollectView */, 2CBB3FC4248A45C8003D3089 /* AutoFitLabel */, 2C5067F720FDB30600D5F47A /* Menu */, 2CA07076246B991500F9D6D1 /* PBAnnotationView.h */, @@ -4040,6 +4047,17 @@ name = Frameworks; sourceTree = "<group>"; }; + 4C0701B229BED74000F29889 /* AutoCollectView */ = { + isa = PBXGroup; + children = ( + 4C0701B329BED74000F29889 /* KeyWordCell.m */, + 4C0701B429BED74000F29889 /* LBKeyWordLayout.h */, + 4C0701B529BED74000F29889 /* LBKeyWordLayout.m */, + 4C0701B629BED74000F29889 /* KeyWordCell.h */, + ); + path = AutoCollectView; + sourceTree = "<group>"; + }; 4C385C712988F3DF00D9F626 /* SGQRCode */ = { isa = PBXGroup; children = ( @@ -4662,6 +4680,7 @@ 2C5067F620FD935100D5F47A /* PBMineView.m in Sources */, 2C66CBED216C811B0039C19A /* PBProjectPower.m in Sources */, 4CD610FE28C052B900BBBF67 /* PBSuperviseTableViewCell.m in Sources */, + 4C0701B829BED74000F29889 /* LBKeyWordLayout.m in Sources */, 2C16401528C39A7A001DFF31 /* PBMaterialPlanModel.m in Sources */, 4C8488712901529C0095E7C3 /* PBScrollVpView.m in Sources */, 2C01A388211182F600D75B3F /* PBDocBaseController.mm in Sources */, @@ -4748,6 +4767,7 @@ 2C69964A2435C7820015EE17 /* PBStructureViewController.m in Sources */, 2C2CB6652125632400E35BB5 /* PBPersonTableViewCell.m in Sources */, 2CBB3FEE2493634F003D3089 /* PBCodeTableViewCell.m in Sources */, + 4C0701B729BED74000F29889 /* KeyWordCell.m in Sources */, 4C90992628D80F0B004B30C4 /* IQKeyboardManager.m in Sources */, 2C1AC3F8211AFAE900D3C412 /* PBIssueNavModel.m in Sources */, 2C8DD18B247F704C009B6C26 /* JYPulleyScrollView.m in Sources */, diff --git a/IphoneBIMe/IphoneBIMe/Classes/Project/Examine/AddViews/PBPersonChooseTableViewCell.m b/IphoneBIMe/IphoneBIMe/Classes/Project/Examine/AddViews/PBPersonChooseTableViewCell.m index c0bcad1..9a65cf1 100644 --- a/IphoneBIMe/IphoneBIMe/Classes/Project/Examine/AddViews/PBPersonChooseTableViewCell.m +++ b/IphoneBIMe/IphoneBIMe/Classes/Project/Examine/AddViews/PBPersonChooseTableViewCell.m @@ -10,11 +10,11 @@ #import "PBExamineAddModel.h" #import "PBPersonListView.h" #import "PBPersonModel.h" -#import "MSSAutoresizeLabelFlowLayout.h" +#import "LBKeyWordLayout.h" +#import "KeyWordCell.h" #import "PBPersonListCollectionViewCell.h" -#import "MSSAutoresizeLabelFlowConfig.h" static NSString *const cellId = @"cellId"; -@interface PBPersonChooseTableViewCell()<UICollectionViewDataSource,UICollectionViewDelegate, MSSAutoresizeLabelFlowLayoutDataSource,MSSAutoresizeLabelFlowLayoutDelegate> +@interface PBPersonChooseTableViewCell()<UICollectionViewDataSource,UICollectionViewDelegate> @property (nonatomic,strong) UICollectionView *collection; @property (nonatomic,strong) NSMutableArray *data; //@property (nonatomic,copy) selectedHandler handler; @@ -25,6 +25,8 @@ @property (nonatomic, weak) UIView *collectionBg; @property (nonatomic, assign) BOOL isLayout; @property (nonatomic, assign) CGFloat height; +@property (strong, nonatomic) LBKeyWordLayout *layout; + @end @implementation PBPersonChooseTableViewCell - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { @@ -69,28 +71,17 @@ 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); -// }]; + self.layout = [[LBKeyWordLayout alloc] init]; + self.layout.estimatedItemSize = CGSizeMake(80, 30); + self.layout.sectionInset = UIEdgeInsetsMake(10, 10, 10, 10); - MSSAutoresizeLabelFlowLayout *layout = [[MSSAutoresizeLabelFlowLayout alloc]init]; - layout.delegate = self; - layout.dataSource = self; - self.collection = [[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:layout]; + self.collection = [[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:self.layout]; self.collection.backgroundColor = [UIColor whiteColor]; - self.collection.allowsMultipleSelection = YES; +// self.collection.allowsMultipleSelection = YES; self.collection.delegate = self; self.collection.dataSource = self; // self.collection.scrollEnabled = NO; - [self.collection registerClass:[PBPersonListCollectionViewCell class] forCellWithReuseIdentifier:cellId]; + [self.collection registerClass:[KeyWordCell class] forCellWithReuseIdentifier:@"KeyWordCell"]; [self.contentView addSubview:self.collection]; [self.collection mas_makeConstraints:^(MASConstraintMaker *make) { // make.top.left.right.bottom.equalTo(collectionBg); @@ -138,22 +129,15 @@ [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)); + make.height.equalTo(@(70)); }]; }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]; @@ -161,117 +145,20 @@ 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; -// } + return self.data.count; } - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { - PBPersonListCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellId forIndexPath:indexPath]; + KeyWordCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"KeyWordCell" forIndexPath:indexPath]; + cell.maxWidthConstraint.constant = CGRectGetWidth(collectionView.bounds) - self.layout.sectionInset.left - self.layout.sectionInset.right - cell.layoutMargins.left - cell.layoutMargins.right - 10; + cell.textLabel.numberOfLines = 1; PBPersonModel *model = self.data[indexPath.item]; - [cell configCellWithTitle:model.RealName]; + cell.textLabel.text = 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 { diff --git a/IphoneBIMe/IphoneBIMe/Classes/Project/Examine/ViewControllers/PBAddExamineViewController.m b/IphoneBIMe/IphoneBIMe/Classes/Project/Examine/ViewControllers/PBAddExamineViewController.m index 018c28e..c69c229 100644 --- a/IphoneBIMe/IphoneBIMe/Classes/Project/Examine/ViewControllers/PBAddExamineViewController.m +++ b/IphoneBIMe/IphoneBIMe/Classes/Project/Examine/ViewControllers/PBAddExamineViewController.m @@ -25,7 +25,6 @@ #import "PBPersonModel.h" #import "PBArtifactsInfoModel.h" #import "PBProjectModel.h" -#import "MSSAutoresizeLabelFlow.h" #import "PBTextInputTableViewCell.h" #import "PBTopTitleTableViewCell.h" #import "PBTimeChooseTableViewCell.h" @@ -46,6 +45,8 @@ #import "PBCheckHeaderView.h" #import "LXFCameraController.h" #import "PBVideoPlayViewController.h" +#import "LBKeyWordLayout.h" +#import "KeyWordCell.h" static NSString *const inputCellID = @"InputCellID"; static NSString *const titleCellID = @"titleCellID"; static NSString *const oneChooseCellID = @"oneChooseCellID"; @@ -57,7 +58,7 @@ static NSString *const statusCellID = @"statusCellID"; static NSString *const instructionsCellID = @"instructionsCellID"; -@interface PBAddExamineViewController ()<UITableViewDelegate, UITableViewDataSource, UIGestureRecognizerDelegate, LFImagePickerControllerDelegate> +@interface PBAddExamineViewController ()<UITableViewDelegate, UITableViewDataSource, UIGestureRecognizerDelegate, LFImagePickerControllerDelegate, UICollectionViewDelegate, UICollectionViewDataSource> @property (nonatomic, strong) UITableView *tableView; @property (nonatomic, strong) NSMutableArray<PBExamineAddModel *> *dataListM; @property (nonatomic, strong) NSDictionary *examinDetailDic; @@ -66,8 +67,6 @@ @property (nonatomic, strong) PBTimeChooseView *timeChooseView; @property (nonatomic, strong) PBEditTimeView *editTimeView; @property (nonatomic, strong) UIView *backgroundView; -@property (nonatomic, strong) UIView *typeBackView; -@property (nonatomic, strong) MSSAutoresizeLabelFlow *typeListRecordV; @property (nonatomic, weak) UIButton *typeListBtn; @property (nonatomic, strong) NSDictionary *typeDict; @property (nonatomic, strong) PBCheckHeaderView *tableheaderView1; @@ -77,6 +76,9 @@ @property (nonatomic, assign) NSInteger personIndex; @property (nonatomic, assign) BOOL isSupervisor;//是否为监理人 @property (nonatomic, assign) BOOL isQualified;//是否状态为已合格 +@property (nonatomic, strong) UICollectionView *collectionView; +@property (strong, nonatomic) LBKeyWordLayout *layout; +@property (strong, nonatomic) NSArray *items; @end @implementation PBAddExamineViewController @@ -847,11 +849,6 @@ [self hideDropDown]; } - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { -// if ([NSStringFromClass([touch.view class]) isEqualToString:@"MSSAutoresizeLabelFlow"]) { -// return NO; -// } else { -// return YES; -// } if (touch.view == self.backgroundView) { return YES; } else { @@ -864,36 +861,20 @@ return; } [self.view addSubview:self.backgroundView]; - [self.backgroundView addSubview:self.typeBackView]; - [self.typeBackView circleViewWithRadius:6]; - [self.typeBackView addSubview:self.typeListRecordV]; - [UIView animateWithDuration:0.5 animations:^{ - self.typeBackView.frame = CGRectMake(0, 0, PBScreenWidth, 176); - self.backgroundView.backgroundColor = [UIColor colorWithWhite:0 alpha:0.3]; - }completion:^(BOOL finished) { -// self->_isShow = YES; - - }]; + [self.view addSubview:self.collectionView]; self.typeListBtn.enabled = NO; self.navigationItem.leftBarButtonItem.enabled = NO; } - (void)hideDropDown{ - [UIView animateWithDuration:0.5 animations:^{ - self.typeBackView.frame = CGRectMake(0, -176, PBScreenWidth, 176); - self.backgroundView.backgroundColor = [UIColor colorWithWhite:0 alpha:0]; - }completion:^(BOOL finished) { - [self.backgroundView removeFromSuperview]; - [self.typeBackView removeFromSuperview]; - [self.typeListRecordV removeFromSuperview]; -// self->_isShow = NO; - }]; + [self.collectionView removeFromSuperview]; + [self.backgroundView removeFromSuperview]; self.typeListBtn.enabled = YES; self.navigationItem.leftBarButtonItem.enabled = YES; } - (UIView *)backgroundView { if (_backgroundView == nil) { _backgroundView = [[UIView alloc] initWithFrame:CGRectMake(0 , 0, PBScreenWidth, self.view.height)]; - _backgroundView.backgroundColor = [UIColor colorWithWhite:0 alpha:0]; + _backgroundView.backgroundColor = [UIColor colorWithWhite:0 alpha:0.3]; [_backgroundView setOpaque:NO]; UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(backTapped:)]; tap.delegate = self; @@ -901,30 +882,43 @@ } return _backgroundView; } -- (MSSAutoresizeLabelFlow *)typeListRecordV { - NSMutableArray *arrM = [[NSMutableArray alloc] init]; - for (NSInteger i = 0; i < self.typeArr.count; i++) { - NSString *str = [self.typeArr[i] valueForKey:@"aedt_name"]; - [arrM addObject:str]; +- (UICollectionView *)collectionView { + if (_collectionView == nil) { + NSMutableArray *arrM = [[NSMutableArray alloc] init]; + for (NSInteger i = 0; i < self.typeArr.count; i++) { + NSString *str = [self.typeArr[i] valueForKey:@"aedt_name"]; + [arrM addObject:str]; + } + self.items = arrM.copy; + self.layout = [[LBKeyWordLayout alloc] init]; + self.layout.estimatedItemSize = CGSizeMake(80, 30); + self.layout.sectionInset = UIEdgeInsetsMake(10, 10, 10, 10); + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, PBScreenWidth, 200) collectionViewLayout:self.layout]; + _collectionView.backgroundColor = [UIColor whiteColor]; + [_collectionView registerClass:[KeyWordCell class] forCellWithReuseIdentifier:@"KeyWordCell"]; + _collectionView.delegate = self; + _collectionView.dataSource = self; } - NSArray *array = arrM.copy; - if (_typeListRecordV == nil) { - _typeListRecordV = [[MSSAutoresizeLabelFlow alloc] initWithFrame:CGRectMake(0, 25, PBScreenWidth, 126) titles:array selectedHandler:^(NSUInteger index, NSString *title) { - self.typeDict = self.typeArr[index]; - NSString *btnTitle = [NSString stringWithFormat:@"%@ ⋁",[self.typeDict valueForKey:@"aedt_name"]]; - [self.typeListBtn setTitle:btnTitle forState:UIControlStateNormal]; - [self hideDropDown]; - }]; - } - return _typeListRecordV; + return _collectionView; } -- (UIView *)typeBackView { - if (_typeBackView == nil) { - _typeBackView = [[UIView alloc] initWithFrame:CGRectMake(0, -176, PBScreenWidth, 176)]; - _typeBackView.backgroundColor = [UIColor whiteColor]; - } - return _typeBackView; +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.items.count; } + +- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + KeyWordCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"KeyWordCell" forIndexPath:indexPath]; + cell.maxWidthConstraint.constant = CGRectGetWidth(collectionView.bounds) - self.layout.sectionInset.left - self.layout.sectionInset.right - cell.layoutMargins.left - cell.layoutMargins.right - 10; + cell.textLabel.numberOfLines = 1; + cell.textLabel.text = self.items[indexPath.row]; + return cell; +} +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + self.typeDict = self.typeArr[indexPath.row]; + NSString *btnTitle = [NSString stringWithFormat:@"%@ ⋁",[self.typeDict valueForKey:@"aedt_name"]]; + [self.typeListBtn setTitle:btnTitle forState:UIControlStateNormal]; + [self hideDropDown]; +} + - (NSMutableArray *)selectedPhotos { if (_selectedPhotos == nil) { _selectedPhotos = [[NSMutableArray alloc] init]; diff --git a/IphoneBIMe/IphoneBIMe/Classes/Project/Examine/ViewControllers/PBCheckTaskViewController.m b/IphoneBIMe/IphoneBIMe/Classes/Project/Examine/ViewControllers/PBCheckTaskViewController.m index 6b0eedc..09e3536 100644 --- a/IphoneBIMe/IphoneBIMe/Classes/Project/Examine/ViewControllers/PBCheckTaskViewController.m +++ b/IphoneBIMe/IphoneBIMe/Classes/Project/Examine/ViewControllers/PBCheckTaskViewController.m @@ -26,20 +26,21 @@ #import "PBTimeChooseTableViewCell.h" #import "PBPersonChooseTableViewCell.h" #import "PBArtifactsListTableViewCell.h" -#import "MSSAutoresizeLabelFlow.h" #import "PBRecordViewController.h" #import "PBPersonListViewController.h" #import "PBSelectedPersonController.h" #import "PBEAddImageView.h" #import "PBCheckHeaderView.h" #import "PBVideoPlayViewController.h" +#import "LBKeyWordLayout.h" +#import "KeyWordCell.h" static NSString *const inputCellID = @"InputCellID"; static NSString *const titleCellID = @"titleCellID"; static NSString *const timeChooseCellID = @"timeChooseCellID"; static NSString *const personCellID = @"personCellID"; static NSString *const listCellID = @"listCellID"; -@interface PBCheckTaskViewController ()<UITableViewDelegate, UITableViewDataSource, UIGestureRecognizerDelegate> +@interface PBCheckTaskViewController ()<UITableViewDelegate, UITableViewDataSource, UIGestureRecognizerDelegate, UICollectionViewDelegate, UICollectionViewDataSource> @property (nonatomic, strong) UITableView *tableView; @property (nonatomic, strong) NSMutableArray<PBExamineAddModel *> *dataListM; @property (nonatomic, strong) NSDictionary *examinDetailDic; @@ -51,10 +52,12 @@ @property (nonatomic, strong) NSDictionary *typeDict; @property (nonatomic, strong) PBComponentHierarchyView *componentHierarchyView; @property (nonatomic, strong) UIView *backgroundView; -@property (nonatomic, strong) UIView *typeBackView; -@property (nonatomic, strong) MSSAutoresizeLabelFlow *typeListRecordV; @property (nonatomic, assign) BOOL isCheck; @property (nonatomic, strong) PBCheckHeaderView *tableheaderView1; +@property (nonatomic, strong) UICollectionView *collectionView; +@property (strong, nonatomic) LBKeyWordLayout *layout; +@property (strong, nonatomic) NSArray *items; + @end @implementation PBCheckTaskViewController @@ -571,11 +574,6 @@ [self hideDropDown]; } - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { -// if ([NSStringFromClass([touch.view class]) isEqualToString:@"MSSAutoresizeLabelFlow"]) { -// return NO; -// } else { -// return YES; -// } if (touch.view == self.backgroundView) { return YES; } else { @@ -588,36 +586,20 @@ return; } [self.view addSubview:self.backgroundView]; - [self.backgroundView addSubview:self.typeBackView]; - [self.typeBackView circleViewWithRadius:6]; - [self.typeBackView addSubview:self.typeListRecordV]; - [UIView animateWithDuration:0.5 animations:^{ - self.typeBackView.frame = CGRectMake(0, 0, PBScreenWidth, 176); - self.backgroundView.backgroundColor = [UIColor colorWithWhite:0 alpha:0.3]; - }completion:^(BOOL finished) { -// self->_isShow = YES; - - }]; + [self.view addSubview:self.collectionView]; self.typeListBtn.enabled = NO; self.navigationItem.leftBarButtonItem.enabled = NO; } - (void)hideDropDown{ - [UIView animateWithDuration:0.5 animations:^{ - self.typeBackView.frame = CGRectMake(0, -176, PBScreenWidth, 176); - self.backgroundView.backgroundColor = [UIColor colorWithWhite:0 alpha:0]; - }completion:^(BOOL finished) { - [self.backgroundView removeFromSuperview]; - [self.typeBackView removeFromSuperview]; - [self.typeListRecordV removeFromSuperview]; -// self->_isShow = NO; - }]; + [self.collectionView removeFromSuperview]; + [self.backgroundView removeFromSuperview]; self.typeListBtn.enabled = YES; self.navigationItem.leftBarButtonItem.enabled = YES; } - (UIView *)backgroundView { if (_backgroundView == nil) { _backgroundView = [[UIView alloc] initWithFrame:CGRectMake(0 , 0, PBScreenWidth, self.view.height)]; - _backgroundView.backgroundColor = [UIColor colorWithWhite:0 alpha:0]; + _backgroundView.backgroundColor = [UIColor colorWithWhite:0 alpha:0.3]; [_backgroundView setOpaque:NO]; UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(backTapped:)]; tap.delegate = self; @@ -625,36 +607,48 @@ } return _backgroundView; } -- (MSSAutoresizeLabelFlow *)typeListRecordV { - NSMutableArray *arrM = [[NSMutableArray alloc] init]; - for (NSInteger i = 0; i < self.typeArr.count; i++) { - NSString *str = [self.typeArr[i] valueForKey:@"aedt_name"]; - [arrM addObject:str]; - } - NSArray *array = arrM.copy; - if (_typeListRecordV == nil) { - _typeListRecordV = [[MSSAutoresizeLabelFlow alloc] initWithFrame:CGRectMake(0, 25, PBScreenWidth, 126) titles:array selectedHandler:^(NSUInteger index, NSString *title) { - __weak typeof(self) weakSelf = self; - NSDictionary *typeDic = self.typeArr[index]; - NSString *guidStr = [typeDic valueForKey:@"aedt_guid"]; - NSMutableDictionary *dictM = [[NSMutableDictionary alloc] init]; - [dictM setValue:guidStr forKey:@"aedt_guid"]; - [dictM setValue:@"3" forKey:@"modify_flag"]; - PBExamineAddModel *examineAddModel = self.dataListM[8]; - examineAddModel.dataDict = typeDic; - [weakSelf ModifyMissionInfoWithData:dictM andIndexPath:nil andOriginalData:nil]; - [self hideDropDown]; - }]; - } - return _typeListRecordV; +- (UICollectionView *)collectionView { + if (_collectionView == nil) { + NSMutableArray *arrM = [[NSMutableArray alloc] init]; + for (NSInteger i = 0; i < self.typeArr.count; i++) { + NSString *str = [self.typeArr[i] valueForKey:@"aedt_name"]; + [arrM addObject:str]; + } + self.items = arrM.copy; + self.layout = [[LBKeyWordLayout alloc] init]; + self.layout.estimatedItemSize = CGSizeMake(80, 30); + self.layout.sectionInset = UIEdgeInsetsMake(10, 10, 10, 10); + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, PBScreenWidth, 200) collectionViewLayout:self.layout]; + [_collectionView registerClass:[KeyWordCell class] forCellWithReuseIdentifier:@"KeyWordCell"]; + _collectionView.delegate = self; + _collectionView.dataSource = self; + } + return _collectionView; + } +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.items.count; } -- (UIView *)typeBackView { - if (_typeBackView == nil) { - _typeBackView = [[UIView alloc] initWithFrame:CGRectMake(0, -176, PBScreenWidth, 176)]; - _typeBackView.backgroundColor = [UIColor whiteColor]; - } - return _typeBackView; + +- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + KeyWordCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"KeyWordCell" forIndexPath:indexPath]; + cell.maxWidthConstraint.constant = CGRectGetWidth(collectionView.bounds) - self.layout.sectionInset.left - self.layout.sectionInset.right - cell.layoutMargins.left - cell.layoutMargins.right - 10; + cell.textLabel.numberOfLines = 1; + cell.textLabel.text = self.items[indexPath.row]; + return cell; } +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + __weak typeof(self) weakSelf = self; + NSDictionary *typeDic = self.typeArr[indexPath.row]; + NSString *guidStr = [typeDic valueForKey:@"aedt_guid"]; + NSMutableDictionary *dictM = [[NSMutableDictionary alloc] init]; + [dictM setValue:guidStr forKey:@"aedt_guid"]; + [dictM setValue:@"3" forKey:@"modify_flag"]; + PBExamineAddModel *examineAddModel = self.dataListM[8]; + examineAddModel.dataDict = typeDic; + [weakSelf ModifyMissionInfoWithData:dictM andIndexPath:nil andOriginalData:nil]; + [self hideDropDown]; +} + /* #pragma mark - Navigation diff --git a/IphoneBIMe/IphoneBIMe/Classes/ProjectList/Views/AutoCollectView/KeyWordCell.h b/IphoneBIMe/IphoneBIMe/Classes/ProjectList/Views/AutoCollectView/KeyWordCell.h new file mode 100644 index 0000000..976945a --- /dev/null +++ b/IphoneBIMe/IphoneBIMe/Classes/ProjectList/Views/AutoCollectView/KeyWordCell.h @@ -0,0 +1,18 @@ +// +// KeyWordCell.h +// IphoneBIMe +// +// Created by ZhangJF on 2023/3/9. +// Copyright © 2023 ProBIM. All rights reserved. +// + +#import <UIKit/UIKit.h> + +NS_ASSUME_NONNULL_BEGIN + +@interface KeyWordCell : UICollectionViewCell +@property (weak, nonatomic) UILabel *textLabel; +@property (weak, nonatomic) NSLayoutConstraint *maxWidthConstraint; +@end + +NS_ASSUME_NONNULL_END diff --git a/IphoneBIMe/IphoneBIMe/Classes/ProjectList/Views/AutoCollectView/KeyWordCell.m b/IphoneBIMe/IphoneBIMe/Classes/ProjectList/Views/AutoCollectView/KeyWordCell.m new file mode 100644 index 0000000..429501b --- /dev/null +++ b/IphoneBIMe/IphoneBIMe/Classes/ProjectList/Views/AutoCollectView/KeyWordCell.m @@ -0,0 +1,38 @@ +// +// KeyWordCell.m +// IphoneBIMe +// +// Created by ZhangJF on 2023/3/9. +// Copyright © 2023 ProBIM. All rights reserved. +// + +#import "KeyWordCell.h" + +@implementation KeyWordCell +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self setupUI]; + } + return self; +} +- (void)setupUI { + self.backgroundColor = [UIColor colorWithRed:229 / 255.0 green:239 / 255.0 blue:250 / 255.0 alpha:1.0]; + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:14]; + label.textColor = [UIColor colorWithRed:0 / 255.0 green:122 / 255.0 blue:255 / 255.0 alpha:1.0]; + self.textLabel = label; + [self.contentView addSubview:self.textLabel]; + [self.textLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.contentView).offset(5); + make.bottom.equalTo(self.contentView).offset(-5); + make.left.equalTo(self.contentView).offset(10); + make.right.equalTo(self.contentView).offset(-10); + }]; +} + +- (void)layoutSubviews +{ + [super layoutSubviews]; + self.layer.cornerRadius = 6.0f; +} +@end diff --git a/IphoneBIMe/IphoneBIMe/Classes/ProjectList/Views/AutoCollectView/LBKeyWordLayout.h b/IphoneBIMe/IphoneBIMe/Classes/ProjectList/Views/AutoCollectView/LBKeyWordLayout.h new file mode 100644 index 0000000..d04e3c9 --- /dev/null +++ b/IphoneBIMe/IphoneBIMe/Classes/ProjectList/Views/AutoCollectView/LBKeyWordLayout.h @@ -0,0 +1,13 @@ +// +// LBKeyWordLayout.h +// IphoneBIMe +// +// Created by ZhangJF on 2023/3/9. +// Copyright © 2023 ProBIM. All rights reserved. +// + +#import <UIKit/UIKit.h> + +@interface LBKeyWordLayout : UICollectionViewFlowLayout + +@end diff --git a/IphoneBIMe/IphoneBIMe/Classes/ProjectList/Views/AutoCollectView/LBKeyWordLayout.m b/IphoneBIMe/IphoneBIMe/Classes/ProjectList/Views/AutoCollectView/LBKeyWordLayout.m new file mode 100644 index 0000000..d8573df --- /dev/null +++ b/IphoneBIMe/IphoneBIMe/Classes/ProjectList/Views/AutoCollectView/LBKeyWordLayout.m @@ -0,0 +1,151 @@ +// +// LBKeyWordLayout.m +// IphoneBIMe +// +// Created by ZhangJF on 2023/3/9. +// Copyright © 2023 ProBIM. All rights reserved. +// +#import "LBKeyWordLayout.h" + +@interface LBKeyWordLayout() +@property (strong, nonatomic) NSCache *cache; +@end + +@implementation LBKeyWordLayout + +- (void)prepareLayout +{ + [super prepareLayout]; + self.cache = [NSCache new]; +} + +- (void)invalidateLayout +{ + [super invalidateLayout]; + self.cache = [NSCache new]; +} + +- (BOOL)shouldInvalidateLayoutForPreferredLayoutAttributes:(UICollectionViewLayoutAttributes *)preferredAttributes withOriginalAttributes:(UICollectionViewLayoutAttributes *)originalAttributes +{ + return YES; +} + +- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds +{ + return YES; +} + +- (NSArray<UICollectionViewLayoutAttributes *> *)layoutAttributesForElementsInRect:(CGRect)rect +{ + NSArray<UICollectionViewLayoutAttributes *> *attributes = [super layoutAttributesForElementsInRect:rect].copy; + return [self layoutAttributesForElements:attributes]; +} + +- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath +{ + return [self attributesAtIndexPath:indexPath]; +} + +#pragma mark - Private + +- (NSArray<UICollectionViewLayoutAttributes *> *)layoutAttributesForElements:(NSArray<UICollectionViewLayoutAttributes *> *)attributes +{ + NSMutableArray<UICollectionViewLayoutAttributes *> *alignedAttributes = [NSMutableArray new]; + + for (UICollectionViewLayoutAttributes *item in attributes) { + if(item.representedElementKind != nil) { + [alignedAttributes addObject:item]; + } else { + [alignedAttributes addObject:[self layoutAttributesForItem:item atIndexPath:item.indexPath]]; + } + } + + return alignedAttributes.copy; +} + +- (UICollectionViewLayoutAttributes *)layoutAttributesForItem:(UICollectionViewLayoutAttributes *)attributes atIndexPath:(NSIndexPath *)indexPath +{ + return [self attributes:attributes atIndexPath:indexPath]; +} + +- (UICollectionViewLayoutAttributes *)attributesAtIndexPath:(NSIndexPath *)indexPath +{ + UICollectionViewLayoutAttributes *attributes = [super layoutAttributesForItemAtIndexPath:indexPath].copy; + return [self attributes:attributes atIndexPath:indexPath]; +} + +- (UICollectionViewLayoutAttributes *)attributes:(UICollectionViewLayoutAttributes *)attributes atIndexPath:(NSIndexPath *)indexPath +{ + if ([self.cache objectForKey:indexPath]) { + return [self.cache objectForKey:indexPath]; + } + + NSMutableArray *itemsInRow = [NSMutableArray array]; + + const NSInteger totalInSection = [self.collectionView numberOfItemsInSection:indexPath.section]; + const CGFloat width = CGRectGetWidth(self.collectionView.bounds); + const CGRect rowFrame = CGRectMake(0, CGRectGetMinY(attributes.frame), width, CGRectGetHeight(attributes.frame)); + + // Go forward to the end or the row or section items + NSInteger index = indexPath.row; + while(index++ < totalInSection - 1) { + + UICollectionViewLayoutAttributes *next = [super layoutAttributesForItemAtIndexPath:[NSIndexPath indexPathForItem:index + inSection:indexPath.section]].copy; + + if (!CGRectIntersectsRect(next.frame, rowFrame)) { + break; + } + [itemsInRow addObject:next]; + } + + // Current item + [itemsInRow addObject:attributes]; + + // Go backward to the start of the row or first item + index = indexPath.row; + while (index-- > 0) { + + UICollectionViewLayoutAttributes *prev = [super layoutAttributesForItemAtIndexPath:[NSIndexPath indexPathForItem:index + inSection:indexPath.section]].copy; + + if (!CGRectIntersectsRect(prev.frame, rowFrame)) { + break; + } + [itemsInRow addObject:prev]; + } + + // Total items width include spacings + CGFloat totalWidth = self.minimumInteritemSpacing * (itemsInRow.count - 1); + for (UICollectionViewLayoutAttributes *item in itemsInRow) { + totalWidth += CGRectGetWidth(item.frame); + } + + // Correct sorting in row + [itemsInRow sortUsingComparator:^NSComparisonResult(UICollectionViewLayoutAttributes *obj1, UICollectionViewLayoutAttributes *obj2) { + return obj1.indexPath.row > obj2.indexPath.row; + }]; + + CGRect rect = CGRectZero; + for (UICollectionViewLayoutAttributes *item in itemsInRow) { + + CGRect frame = item.frame; + CGFloat x = frame.origin.x; + + if (CGRectIsEmpty(rect)) { + x = self.sectionInset.left; + } else { + x = CGRectGetMaxX(rect) + self.minimumInteritemSpacing; + } + + frame.origin.x = x; + item.frame = frame; + rect = frame; + + [self.cache setObject:item forKey:item.indexPath]; + } + + [self.cache setObject:attributes forKey:indexPath]; + return attributes; +} +@end diff --git a/IphoneBIMe/IphoneBIMe/Classes/ProjectList/Views/PBProjectSearchView.m b/IphoneBIMe/IphoneBIMe/Classes/ProjectList/Views/PBProjectSearchView.m index bb0ed23..f5bc298 100644 --- a/IphoneBIMe/IphoneBIMe/Classes/ProjectList/Views/PBProjectSearchView.m +++ b/IphoneBIMe/IphoneBIMe/Classes/ProjectList/Views/PBProjectSearchView.m @@ -7,15 +7,18 @@ // #import "PBProjectSearchView.h" -#import "MSSAutoresizeLabelFlow.h" #import "PBProjectTableViewCell.h" #import "PBProjectModel.h" #import "PBTabBarController.h" -@interface PBProjectSearchView()<UISearchBarDelegate, UITableViewDataSource, UITableViewDelegate> -@property(nonatomic,strong)MSSAutoresizeLabelFlow *historicalRecordV; +#import "LBKeyWordLayout.h" +#import "KeyWordCell.h" +@interface PBProjectSearchView()<UISearchBarDelegate, UITableViewDataSource, UITableViewDelegate, UICollectionViewDelegate, UICollectionViewDataSource> @property (nonatomic, strong) UITableView *tableView; @property (nonatomic, strong) NSArray *dataList; @property (nonatomic, weak) UISearchBar *searchBar; +@property (nonatomic, strong) UICollectionView *collectionView; +@property (strong, nonatomic) LBKeyWordLayout *layout; +@property (strong, nonatomic) NSArray *items; @end @implementation PBProjectSearchView - (instancetype)initWithFrame:(CGRect)frame { @@ -87,13 +90,21 @@ make.right.equalTo(self).offset(-18); make.size.mas_equalTo(CGSizeMake(24, 24)); }]; - NSArray *array = [self readSearchHistory]; - _historicalRecordV = [[MSSAutoresizeLabelFlow alloc] initWithFrame:CGRectMake(0, 150, PBScreenWidth, 200) titles:array selectedHandler:^(NSUInteger index, NSString *title) { - NSLog(@"%@",title); - self.searchBar.text = title; - [self searchActionWithTitle:title]; - }]; - [self addSubview:_historicalRecordV]; + self.items = [self readSearchHistory]; +// _historicalRecordV = [[MSSAutoresizeLabelFlow alloc] initWithFrame:CGRectMake(0, 150, PBScreenWidth, 200) titles:array selectedHandler:^(NSUInteger index, NSString *title) { +// NSLog(@"%@",title); +// self.searchBar.text = title; +// [self searchActionWithTitle:title]; +// }]; + self.layout = [[LBKeyWordLayout alloc] init]; + self.layout.estimatedItemSize = CGSizeMake(80, 30); + self.layout.sectionInset = UIEdgeInsetsMake(10, 10, 10, 10); + self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 150, PBScreenWidth, 400) collectionViewLayout:self.layout]; + self.collectionView.backgroundColor = [UIColor whiteColor]; + [self.collectionView registerClass:[KeyWordCell class] forCellWithReuseIdentifier:@"KeyWordCell"]; + self.collectionView.delegate = self; + self.collectionView.dataSource = self; + [self addSubview:self.collectionView]; [self addSubview:self.tableView]; self.tableView.hidden = YES; } @@ -110,7 +121,8 @@ } [arrM insertObject:title atIndex:0]; [self writeSearchHistoryWithData:arrM.copy]; - [self.historicalRecordV reloadAllWithTitles:arrM.copy]; + self.items = arrM.copy; + [self.collectionView reloadData]; } - (void)backActon { if (self.cancelSearchBlock) { @@ -219,7 +231,8 @@ NSString *documentPath = [documents stringByAppendingPathComponent:@"searchHistory.plist"]; NSFileManager *fileManager = [NSFileManager defaultManager]; [fileManager removeItemAtPath:documentPath error:nil]; - [self.historicalRecordV reloadAllWithTitles:@[]]; + self.items = @[]; + [self.collectionView reloadData]; } #pragma mark - 插入本地历史记录 - (void)writeSearchHistoryWithData:(NSArray *)history { @@ -228,6 +241,23 @@ NSString *documentPath = [documents stringByAppendingPathComponent:@"searchHistory.plist"]; [history writeToFile:documentPath atomically:YES]; } +#pragma mark - UICollectionView +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.items.count; +} + +- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + KeyWordCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"KeyWordCell" forIndexPath:indexPath]; + cell.maxWidthConstraint.constant = CGRectGetWidth(collectionView.bounds) - self.layout.sectionInset.left - self.layout.sectionInset.right - cell.layoutMargins.left - cell.layoutMargins.right - 10; + cell.textLabel.numberOfLines = 1; + cell.textLabel.text = self.items[indexPath.row]; + return cell; +} +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + self.searchBar.text = self.items[indexPath.row]; + [self searchActionWithTitle:self.items[indexPath.row]]; +} + /* // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. -- Gitblit v1.9.3