- 浏览: 515516 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
tangyunliang:
大哥你太历害了谢谢
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
u013015029:
LZ,请问下,在// 添加消息到聊天窗口 , 这里获取Ed ...
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
endual:
怎么保持会话,我搞不懂啊
Android基于XMPP Smack Openfire开发IM【一】登录openfire服务器 -
donala_zq:
显示:[2013-11-30 11:50:36 - Andro ...
android-----------新浪微博 -
donala_zq:
哥,运行不了啊
android-----------新浪微博
接上篇iOS学习之UIPickerView控件的简单使用 (一)
我们要实现的效果如下:
1[img]
[/img]
当选择左边的一级选项时,左边展示一级选项里含有的二级选项,选择后显示在TextField里。
如何实现呢?建立一个和左边的列表key对应的数组,当选择这个key时,刷新左边UIPickerView部分的内容显示对应数组的数据,选择时,找到
两个UIPickerView部件rowIndex,找出数据,放到TextField里。
1、打开上篇PickerViewDemo项目,在ViewController.h添加两个成员变量:NSArray *subPickerArray; NSDictionary *dicPicker;
2、初始化:
给 NSDictionary *dicPicker;赋值,对应的三个关键字添加了对应的数组。
3、Component返回两个,这样就有两个齿轮了。
4、使用宏
在#import "ViewController.h"下面定义两个宏,代表UIPickerView齿轮的左边的部分和右边的部分。左边的部分是0,右边的是1.
#import "ViewController.h"
#define kFirstComponent 0
#define kSubComponent 1
5、判断是那个齿轮,返回相应的数据的Count。
6、根据component返回相应的String数据
7、拖动左边的齿轮时,右边的数据相应的Reload更新。
8、相应选择的数据,并显示在TextField上。
大功告成,运行,点击TextField,弹出:
[img]
[/img]
我们要实现的效果如下:
1[img]
[/img]
当选择左边的一级选项时,左边展示一级选项里含有的二级选项,选择后显示在TextField里。
如何实现呢?建立一个和左边的列表key对应的数组,当选择这个key时,刷新左边UIPickerView部分的内容显示对应数组的数据,选择时,找到
两个UIPickerView部件rowIndex,找出数据,放到TextField里。
1、打开上篇PickerViewDemo项目,在ViewController.h添加两个成员变量:NSArray *subPickerArray; NSDictionary *dicPicker;
#import <UIKit/UIKit.h> @interface ViewController : UIViewController<UIPickerViewDelegate, UITextFieldDelegate,UIPickerViewDataSource> { NSArray *pickerArray; NSArray *subPickerArray; NSDictionary *dicPicker; } - (IBAction)selectButton:(id)sender; @property (strong, nonatomic) IBOutlet UIToolbar *doneToolbar; @property (strong, nonatomic) IBOutlet UIPickerView *selectPicker; @property (strong, nonatomic) IBOutlet UITextField *textField; @end
2、初始化:
- (void)viewDidLoad { [super viewDidLoad]; pickerArray = [NSArray arrayWithObjects:@"动物",@"植物",@"石头", nil]; dicPicker = [NSDictionary dictionaryWithObjectsAndKeys: [NSArray arrayWithObjects:@"鱼",@"鸟",@"虫子", nil], @"动物", [NSArray arrayWithObjects:@"花",@"草",@"葵花", nil], @"植物", [NSArray arrayWithObjects:@"疯狂的石头",@"花岗岩",@"鹅卵石", nil], @"石头",nil]; subPickerArray = [dicPicker objectForKey:@"动物"]; textField.inputView = selectPicker; textField.inputAccessoryView = doneToolbar; textField.delegate = self; selectPicker.delegate = self; selectPicker.dataSource = self; selectPicker.frame = CGRectMake(0, 480, 320, 216); }
给 NSDictionary *dicPicker;赋值,对应的三个关键字添加了对应的数组。
3、Component返回两个,这样就有两个齿轮了。
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{ return 2; }
4、使用宏
在#import "ViewController.h"下面定义两个宏,代表UIPickerView齿轮的左边的部分和右边的部分。左边的部分是0,右边的是1.
#import "ViewController.h"
#define kFirstComponent 0
#define kSubComponent 1
5、判断是那个齿轮,返回相应的数据的Count。
-(NSInteger) pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{ if(component == kFirstComponent){ return [pickerArray count]; }else { return [subPickerArray count]; } }
6、根据component返回相应的String数据
-(NSString*) pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{ if(component == kFirstComponent){ return [pickerArray objectAtIndex:row]; }else { return [subPickerArray objectAtIndex:row]; } }
7、拖动左边的齿轮时,右边的数据相应的Reload更新。
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{ if (component == kFirstComponent) { subPickerArray = [dicPicker objectForKey:[pickerArray objectAtIndex:row]]; [pickerView selectRow:0 inComponent:kSubComponent animated:YES]; [pickerView reloadComponent:kSubComponent]; } }
8、相应选择的数据,并显示在TextField上。
-(void)textFieldDidEndEditing:(UITextField *)textField{ NSInteger firstViewRow = [selectPicker selectedRowInComponent:kFirstComponent]; NSInteger subViewRow = [selectPicker selectedRowInComponent:kSubComponent]; NSString * firstString = [pickerArray objectAtIndex:firstViewRow]; NSString * subString = [[dicPicker objectForKey:[pickerArray objectAtIndex:firstViewRow]] objectAtIndex:subViewRow] ; NSString *textString = [[NSString alloc ] initWithFormat:@"您选择了:%@%@%@", firstString, @" 里的 ", subString]; self.textField.text = textString; } - (IBAction)selectButton:(id)sender { [textField endEditing:YES]; }
大功告成,运行,点击TextField,弹出:
[img]
[/img]
发表评论
-
新风作浪博客学习(十九)在iOS虚拟键盘上添加动态隐藏按钮
2013-06-08 09:19 814为了给用户比较良好的交付,想在键盘上添加一个按钮,实时根据键盘 ... -
新风作浪博客学习(十八)openURL的使用(iOS调用系统电话、浏览器、地图、邮件等) .
2013-06-08 09:19 930今天遇见一行代码实现打开一个网页,比起印象里的UIWebVie ... -
新风作浪博客学习(十七)UIImageView响应点击事件 .
2013-06-08 09:19 664有时候会遇到点击一张图片,然后让这张图片触发一个事件,或者是跳 ... -
新风作浪博客学习(十六)Navigation + Tab Bar 常用组合框架 .
2013-06-07 08:50 1191看到很多项目中都采用的是Navigation加Tab Bar组 ... -
新风作浪博客学习(十五)google地图定位小Demo .
2013-06-07 08:50 1057[img][/img]今天写的是一个简单功能的google地图 ... -
新风作浪博客学习(十四)怎样向iPhone模拟器中添加图片 .
2013-06-07 08:50 740在我们做项目中可能需要使用图库,模拟器是有图库的,但是如何像其 ... -
新风作浪博客学习(十三)表视图的分组分区和索引分区 .
2013-06-07 08:50 742本次实现的是表视图的分区和索引,代码和前面都差不多,主要还是代 ... -
新风作浪博客学习(十二)代码实现UITableViewCell表视图单元定制 .
2013-06-07 08:49 928通常情况下我们会希望单元格UITableViewCell显示自 ... -
新风作浪博客学习(十一)UITableViewCell的标记、移动、删除、插入 .
2013-06-06 09:15 1055这篇文章是建立在 代码实现 UITableView与UITa ... -
新风作浪博客学习(十)代码实现 UITableView与UITableViewCell .
2013-06-06 09:14 1108我们常用的表格类视图就是用 UITableView与UITab ... -
新风作浪博客学习(九)两个UIPickerView控件间的数据依赖 .
2013-06-06 09:14 1039本篇实现功能是两个选取器的关联操作,滚动第一个滚轮第二个滚 ... -
新风作浪博客学习(八)代码实现UIPickerView .
2013-06-06 09:14 1237先说一下当个组件选取器,我们创建一个数组NSAray来保存选取 ... -
新风作浪博客学习(七)代码 实现UIDatePicker控件 和 Tab Bar 视图切换 .
2013-06-06 09:15 1068感觉代码写控件都一个理,先在ViewDidLoad中创建控件对 ... -
新风作浪博客学习(六)ios 视图切换翻页效果 .
2013-06-05 11:18 1020本文写的是视图切换,涉及到的内容有 1.实现代码添加Navi ... -
新风作浪博客学习(五)代码实现UISlider 和 UISwitch .
2013-02-18 09:15 1072本次实现的UISlider和UISwi ... -
新风作浪博客学习(四)把plist里数据显示在textField上 .
2013-02-18 09:15 881在代码实现Lable 、textFie ... -
新风作浪博客学习(三)NSBundle读取图片 plist文件和txt文件
2013-02-18 09:15 1622本文想简单介绍一下NSBundle读取图片到视图上,读取pli ... -
新风作浪博客学习(二)代码实现Lable 、textField创建界面以及键盘的处理
2013-02-18 09:15 1137今天写的是用代码实现一个简单界面,代码重复率比较高,可读性不是 ... -
新风作浪博客学习(一)plist文件读写操作
2013-02-18 09:14 1297文件plist 全名Property List,属性列表文件, ... -
GCDiscreetNotificationView提示视图
2013-06-05 11:17 523先看一下效果图: [img] ...
相关推荐
两个UIPickerView控件间的数据依赖,学习ios中的UIPickerView控件间必备资源。
例子:http://blog.csdn.net/totogo2010/article/details/7690518 的代码
UIPickerView控件学习_点菜系统中的foods.plist文件
UIPickerView控件学习_省市联动中的素材(provinces.plist文件)
本文中的小例子将用UIPickerView控件做出两种效果,第一个只有一个转盘,第二个有两个转盘,但这两个转盘之间没有依赖关系,也就是说改变其中一个转盘中的选择,不会对第二个转盘产生影响。在下一篇文章会做一个转盘...
UIPickerView控件在给用户选择某些特定的数据时经常使用到,这里演示一个简单的选择数据,显示在UITextField输入框里,把UIPickerView作为输入View,用Toolbar作为选定数据的按钮。和其他UITableView控件相似,...
一个选择城市的PickerView,自定义封装View,在工程里可调用。
一个四列的 UIPickerView,可以滑动选择精确到街道的中国行政区划信息,并返回地址,使用简单
好久没写过基础控件了,工作了好多都focus在功能代码了。都快把基础代码都扔掉了。复习下基础控件使用。 这是UI控件的UIPickerView 使用。包含三个小demo
IOS移动手机中的导航条类(UIPickerView),官方文档,不骗人,英文的。
UIPickerView Demo 选择器控件源代码
UIPickerView是一个选择器控件,它可以生成单列的选择器,也可生成多列的选择器,而且开发者完全可以自定义选择项的外观,因此用法非常灵活。UIPickerView直接继承了UIView,没有继承UIControl,因此,它不能像...
IOS应用源码——UIPickerView选择多个选项效果.zip
利用ios UIPickerView 封装的一个选择器类,可以实现选择中国地省市县区等!
iOS 年月份选择器 UIDatePicker UIPickerView
UIPikerView时间选择器,自定义控件,选中颜色变化,取消和确定选中时间。开始进入选择器选中时间等操作!代理方法和控件代理及可实现