项目搜索历史标签 及 现场 新增标签更换库 collection view 添加背景颜色 cell修改样式
4 files added
5 files modified
| | |
| | | 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 */; }; |
| | |
| | | 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>"; }; |
| | |
| | | 2C2A6F0E20F8948C00218D5C /* Views */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 4C0701B229BED74000F29889 /* AutoCollectView */, |
| | | 2CBB3FC4248A45C8003D3089 /* AutoFitLabel */, |
| | | 2C5067F720FDB30600D5F47A /* Menu */, |
| | | 2CA07076246B991500F9D6D1 /* PBAnnotationView.h */, |
| | |
| | | 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 = ( |
| | |
| | | 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 */, |
| | |
| | | 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 */, |
| | |
| | | #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; |
| | |
| | | @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 { |
| | |
| | | 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); |
| | |
| | | [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]; |
| | |
| | | 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 { |
| | |
| | | #import "PBPersonModel.h" |
| | | #import "PBArtifactsInfoModel.h" |
| | | #import "PBProjectModel.h" |
| | | #import "MSSAutoresizeLabelFlow.h" |
| | | #import "PBTextInputTableViewCell.h" |
| | | #import "PBTopTitleTableViewCell.h" |
| | | #import "PBTimeChooseTableViewCell.h" |
| | |
| | | #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"; |
| | |
| | | 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; |
| | |
| | | @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; |
| | |
| | | @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 |
| | |
| | | [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 { |
| | |
| | | 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; |
| | |
| | | } |
| | | 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]; |
| | |
| | | #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; |
| | |
| | | @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 |
| | |
| | | [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 { |
| | |
| | | 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; |
| | |
| | | } |
| | | 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 |
| | | |
New file |
| | |
| | | // |
| | | // 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 |
New file |
| | |
| | | // |
| | | // 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 |
New file |
| | |
| | | // |
| | | // LBKeyWordLayout.h |
| | | // IphoneBIMe |
| | | // |
| | | // Created by ZhangJF on 2023/3/9. |
| | | // Copyright © 2023 ProBIM. All rights reserved. |
| | | // |
| | | |
| | | #import <UIKit/UIKit.h> |
| | | |
| | | @interface LBKeyWordLayout : UICollectionViewFlowLayout |
| | | |
| | | @end |
New file |
| | |
| | | // |
| | | // 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 |
| | |
| | | // |
| | | |
| | | #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 { |
| | |
| | | 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; |
| | | } |
| | |
| | | } |
| | | [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) { |
| | |
| | | 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 { |
| | |
| | | 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. |