博客
关于我
UIPickerView的使用(二)
阅读量:422 次
发布时间:2019-03-06

本文共 1950 字,大约阅读时间需要 6 分钟。

 上篇文章 学习了如何创建单列选择器,现在看一下如何创建多列选择器

 多列选择器(以二列为例)

 1、遵守协议和创建两个数据源

2、创建pickView

 

3、实现代理

 

//UIPickerViewDataSource中定义的方法,该方法的返回值决定该控件包含的列数- (NSInteger)numberOfComponentsInPickerView:(UIPickerView*)pickerView{    return 2; // 返回2表明该控件只包含2列}//UIPickerViewDataSource中定义的方法,该方法的返回值决定该控件指定列包含多少个列表项- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{    // 如果该控件只包含一列,因此无须理会列序号参数component    // 该方法返回teams.count,表明teams包含多少个元素,该控件就包含多少行    if (component == 0) {        return _areas.count;    }    else        return _teams.count;    }// UIPickerViewDelegate中定义的方法,该方法返回的NSString将作为UIPickerView中指定列和列表项的标题文本- (NSString *)pickerView:(UIPickerView *)pickerView             titleForRow:(NSInteger)row forComponent:(NSInteger)component{    // 由于该控件只包含一列,因此无须理会列序号参数component    // 该方法根据row参数返回teams中的元素,row参数代表列表项的编号,    // 因此该方法表示第几个列表项,就使用teams中的第几个元素    if (component == 0) {        return [_areas objectAtIndex:row];    }    return [_teams objectAtIndex:row];}// 当用户选中UIPickerViewDataSource中指定列和列表项时激发该方法- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{        NSArray *tmp = component == 0 ? _areas: _teams;    NSString *tip = component == 0 ? @"区域":@"球队";    // 使用一个UIAlertView来显示用户选中的列表项    UIAlertView* alert = [[UIAlertView alloc]                          initWithTitle:@"提示"                          message:[NSString stringWithFormat:@"你选中的%@是:%@"                                   , tip ,[ tmp objectAtIndex:row]]                          delegate:nil                          cancelButtonTitle:@"确定"                          otherButtonTitles:nil];    [alert show];}// UIPickerViewDelegate中定义的方法,该方法返回的NSString将作为// UIPickerView中指定列的宽度-(CGFloat)pickerView:(UIPickerView *)pickerView   widthForComponent:(NSInteger)component{    // 如果是第一列,宽度为90    if(component == 0) {        return 90;    }    return 210; // 如果是其他列(只有第二列),宽度为210}

 

效果图

 

下一篇   是相关联的多列选择器的使用。

转载地址:http://krfyz.baihongyu.com/

你可能感兴趣的文章
linux kernel version magic 不一致导致的模块 加载 (insmod) 不上
查看>>
java中自定义注解的应用
查看>>
线性代数应该这样学9:上三角矩阵、对角矩阵
查看>>
【科学计算】插值理论
查看>>
centos7一步一步搭建docker jenkins 及自定义访问路径重点讲解
查看>>
Java 读取Excel百分数保留原格式(即不转换为小数)的方法
查看>>
深度学习一:深度前馈网络和反向传播
查看>>
Linux多cuda版本切换
查看>>
在wxPython使ListCtrl占据整个窗口
查看>>
微软面试题
查看>>
Google新玩法(转载)
查看>>
C#中Dispose和Close的区别!
查看>>
绝密:Google 秘密测试新版首页, 将闪聊嵌入搜索框下方!!
查看>>
如何让服务在流量暴增的情况下保持稳定输出
查看>>
一个20年技术老兵的 2020 年度技术总结
查看>>
EF保存平面数据到SqlServer
查看>>
一例完整的websocket实现群聊demo
查看>>
SQLSERVER数据库死锁与优化杂谈
查看>>
【Net】ABP框架学习之它并不那么好用
查看>>
Git 笔记
查看>>