Skip to content

JK-JimmyKudo/XCDropdownSegment

 
 

Repository files navigation

XCDropdownSegment

CI Status Version License Platform Support 


Author 小小聪明屋
E-mail [email protected]
GitHub https://github.com/fanxiaocong
Blog http://www.cnblogs.com/fanxiaocong

Example

简单封装的下拉列表,支持多段显示

DropdownSegment

代码

@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];

    
}

<XCDropdownSegmentDataSource.h> 数据源方法

- (NSArray<NSString *> *)titlesOfHeaderInDropdownSegment:(XCDropdownSegment *)dropdownSegment

段头标题显示的文字,可以是多段,需要一个数组返回

- (NSArray<NSString *> *)titlesOfHeaderInDropdownSegment:(XCDropdownSegment *)dropdownSegment
{
	return @[@"类型",@"行业", @"区域", @"日期"];
}


<XCDropdownSegmentDelegate.h> 代理方法

- (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;
    
}

About

XCDropdownSegment,封装下拉列表

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Objective-C 99.4%
  • Ruby 0.6%