UIPickerView的使用(三)
前两篇文章 UIPickerView的使用(一) 、 UIPickerView的使用(二),学习了UIPickerView的单列选择器和双列选择器的使用。
现在我们一起学习相互依赖的多列选择器
1、遵守协议
2、创建pickView
3、实现协议
- //UIPickerViewDataSource中定义的方法,该方法的返回值决定该控件包含的列数
- - (NSInteger)numberOfComponentsInPickerView:(UIPickerView*)pickerView
- {
- return ; // 返回2表明该控件只包含2列
- }
- //UIPickerViewDataSource中定义的方法,该方法的返回值决定该控件指定列包含多少个列表项
- - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
- {
- // 由于该控件只包含一列,因此无须理会列序号参数component
- // 该方法返回teams.count,表明teams包含多少个元素,该控件就包含多少行
- if (component == ) {
- return _areas.count;
- }
- else
- return [[_teams objectForKey:_selectedAreas]count];
- }
- // UIPickerViewDelegate中定义的方法,该方法返回的NSString将作为UIPickerView
- // 中指定列和列表项的标题文本
- - (NSString *)pickerView:(UIPickerView *)pickerView
- titleForRow:(NSInteger)row forComponent:(NSInteger)component
- {
- // 由于该控件只包含一列,因此无须理会列序号参数component
- // 该方法根据row参数返回teams中的元素,row参数代表列表项的编号,
- // 因此该方法表示第几个列表项,就使用teams中的第几个元素
- if (component == ) {
- return [_areas objectAtIndex:row];
- }
- return [[_teams objectForKey:_selectedAreas]objectAtIndex:row];
- }
- // 当用户选中UIPickerViewDataSource中指定列和列表项时激发该方法
- - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
- {
- if (component == ) {
- _selectedAreas = [_areas objectAtIndex:row];
- [self.pickView reloadComponent:];
- }
- NSArray *tmp = component == ? _areas: [_teams objectForKey:_selectedAreas];
- NSString *tip = component == ? @"区域":@"球队";
- // 使用一个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 == ) {
- return ;
- }
- return ; // 如果是其他列(只有第二列),宽度为210
- }
效果图:
UIPickerView的使用(三)的更多相关文章
- UIPickerView的使用(二)
上篇文章 UIPickerView的使用(一)学习了如何创建单列选择器,现在看一下如何创建多列选择器 多列选择器(以二列为例) 1.遵守协议和创建两个数据源 2.创建pickView 3.实现代理 / ...
- UIPickerView的使用(一)
简介:UIPickerView是一个选择器控件,它比UIDatePicker更加通用,它可以生成单列的选择器,也可生成多列的选择器,而且开发者完全可以自定义选择项的外观,因此用法非常灵活.UIPick ...
- 省市区三级联动 pickerView
效果图 概述 关于 省市区 三级联动的 pickerView,我想大多数的 iOS 开发者应该都遇到过这样的需求.在遇到这样的需求的时候,大多数人都会觉的这个很复杂,一时无从下手.其实真的没那么复杂. ...
- iOS开发笔记11:表单键盘遮挡、浮点数价格格式化显示、省市区选择器、View Debugging
1.表单键盘遮挡 应用场景为一个collectionView上有多个textfield.textView供用户填写信息. 之前输入项较少时,采取的方法比较粗暴,didSelectItemAtIndex ...
- UI控件(UIPickerView)
@implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; _item1 = [[NSArray alloc]i ...
- iOS:选择器控件UIPickerView的详解和演示
选择器控件UIPickerView: 功能:它能够创建一个类似于密码锁式的单列或多列的选择菜单,用户可以通过它设置的代理来选择需要菜单中的任意的数据.例如创建日历.字体表(类型.大小.颜色).图库等. ...
- iOs基础篇(二十二)—— UIPickerView、UIDatePicker控件的使用
一.UIPickerView UIPickerView是一个选择器控件,可以生成单列的选择器,也可生成多列的选择器,而且开发者完全可以自定义选择项的外观,因此用法非常灵活. 1.常用属性 (1)num ...
- Objective-c——UI进阶开发第一天(UIPickerView和UIDatePicker)
一.知识点 1.介绍数据选择控件UIPickerView和日期选择控件UIDatePicker控件 * UIPickerView的案例 * 点餐系统 * 城市选择 * 国旗选择 * UIDatePic ...
- UIPickerView详解
一.UIPickerView 1.UIPickerView的常见属性 // 数据源(用来告诉UIPickerView有多少列多少行) @property(nonatomic,assign) id< ...
随机推荐
- fix orphaned user
orphan user是某个数据库的user,只有user name而没有login,即,在存在于sys.database_principals 中, 而不存在于 sys.server_princip ...
- Lookup component 用法
Lookup component 类似于Tsql的join子句, select a.* ,b.* from dbo.tis a left join dbo. tdes b on a.code=b.co ...
- EF Power Tools参数不正确的解决方法
在Visual Studio 2010安装了EF Power Tools Beta 3之后,希望根据本地现有数据库模型来生成基于Entity Framework Code First的代码时,经常出现 ...
- 【Win10应用开发】相对布局(RelativePanel)
外面的雨下得很大,老周就决定雨下漫笔了. 今天咱们说一个新控件——RelativePanel.本质上,它就是一个面板,面板干啥用的?面板就是一个容器,里面可以放其他对象,就像我们小时候玩的七巧板一样, ...
- 前端学PHP之语句
× 目录 [1]if语句 [2]switch [3]while[4]do-while[5]for语句[6]foreach[7]break[8]continue[9]goto 前面的话 任何 PHP 脚 ...
- (第六天)DOM
概念 文档对象模型(DOM)是表示和操作HTML和XML文档内容的基础API. 选取文档元素 (1)通过ID选取元素 var id = document.getElementById("se ...
- Android使用TextureView播放视频
1.引言 如果你想显示一段在线视频或者任意的数据流比如视频或者OpenGL 场景,你可以用android中的TextureView做到. 1).TextureView的兄弟SurfaceView 应用 ...
- 窥探Swift之函数与闭包的应用实例
今天的博客算是比较基础的,还是那句话,基础这东西在什么时候都是最重要的.说到函数,只要是写过程序就肯定知道函数是怎么回事,今天就来讨论一下Swift中的函数的特性以及Swift中的闭包.今天的一些小实 ...
- Machine Learning
Recently, I am studying Maching Learning which is our course. My English is not good but this course ...
- Solr学习总结(六)SolrNet的高级用法(复杂查询,分页,高亮,Facet查询)
上一篇,讲到了SolrNet的基本用法及CURD,这个算是SolrNet 的入门知识介绍吧,昨天写完之后,有朋友评论说,这些感觉都被写烂了.没错,这些基本的用法,在网上百度,资料肯定一大堆,有一些写的 ...