Author | 小小聪明屋 |
---|---|
[email protected] | |
GitHub | https://github.com/fanxiaocong |
Blog | http://www.cnblogs.com/fanxiaocong |
简单封装的下拉列表,支持多段显示
@interface XCTestViewController ()<XCDropdownSegmentDataSource, XCDropdownSegmentDelegate,XHOneChildViewDelegate,XHTwoChildViewDelegate,XHThreeChildViewDelegate,XHFourChildViewDelegate>
@property (nonatomic,strong) XCDropdownSegment *segment;
@property (nonatomic,strong) NSMutableArray *dataArr;
@end
/**
* 设置 UI
*/
- (void)setupUI
{
XCDropdownSegment *segment = [[XCDropdownSegment alloc] initWithFrame:CGRectMake(0,80, SCREEN_WIDTH, 40)];
segment.dataSource = self;
segment.delegate = self;
self.segment = segment;
[self.view addSubview:segment];
[segment updateConfigure:^(XCDropdownSegmentConfigure *confi) {
confi.rowHeight = 40;
confi.segmentHeight = 40;
confi.sectionHeight = 40;
//根据项目需求更改图片
confi.arrowUpImage = ImageNamed(@"icon_arrow_up");
confi.arrowDownImage = ImageNamed(@"icon_arrow_down");
confi.headerTitleColor = [UIColor colorWithHexString:@"#333333"];
confi.headerSelectedTitleColor = [UIColor colorWithHexString:@"#4180E9"];
}];
//视图代理
self.segment.oneView.delegate = self;
self.segment.twoView.delegate = self;
self.segment.threeView.delegate = self;
self.segment.fourView.delegate = self;
//视图数据的传递
[self.segment.oneView updateDataArr:self.dataArr];
[self.segment.twoView updateDataArr:self.dataArr];
[self.segment.threeView updateDataArr:self.dataArr];
}
- (NSArray<NSString *> *)titlesOfHeaderInDropdownSegment:(XCDropdownSegment *)dropdownSegment
段头标题显示的文字,可以是多段,需要一个数组返回
- (NSArray<NSString *> *)titlesOfHeaderInDropdownSegment:(XCDropdownSegment *)dropdownSegment
{
return @[@"类型",@"行业", @"区域", @"日期"];
}
- (void)dropdownSegment:(XCDropdownSegment *)dropdownSegment didSelectHeaderInSection:(NSInteger)section
点击第 section 段的头部的回调
#pragma mark - 💉 👀 XCDropdownSegmentDelegate 👀
- (void)dropdownSegment:(XCDropdownSegment *)dropdownSegment didSelectHeaderInSection:(NSInteger)section
{
NSLog(@"点击了第 %zi 段", section);
}
视图代理
- (void)dropdownSegment:(XHOneChildView *)dropdownSegment
didSelectRow:(NSInteger)row
inSection:(NSInteger)section category_id:(NSString *)miceTypeEnum category_cn_name:(NSString *)categoryName{
NSLog(@"XHOneChildView == %@",categoryName);
[self.segment updateSelectedItemTitle:categoryName];
[self.segment close];
}
- (void)dropdownSegment:(XHTwoChildView *)dropdownSegment
category_id:(NSString *)miceCategoryId category_cn_name:(NSString *)categoryName{
NSLog(@"XHTwoChildView == %@",categoryName);
[self.segment updateSelectedItemTitle:categoryName];
[self.segment close];
}
- (void)dropdownSegment:(XHThreeChildView *)dropdownSegment
divisionName:(NSString *)divisionName venueName:(NSString *)venueName venueId:(NSString *)venueId{
NSLog(@"XHThreeChildView == %@",venueName);
[self.segment updateSelectedItemTitle:venueName];
[self.segment close];
}
- (void)dropdownSegment:(XHFourChildView *)dropdownSegment
miceTime:(NSString *)miceTime{
NSLog(@"XHFourChildView == %@",miceTime);
[self.segment updateSelectedItemTitle:miceTime];
[self.segment close];
}
设置数据源,可以根据服务器返回的数据进行设置
-(NSMutableArray *)dataArr{
if (!_dataArr) {
_dataArr = [NSMutableArray arrayWithArray:@[
@"二:001",
@"二:002",
@"二:003",
@"二:004",
@"二:005",
@"二:006",
@"二:007",
@"二:007",
@"二:007",
@"二:007"
]];
}
return _dataArr;
}