UIPickerView控件在给用户选择某些特定的数据时经常使用到,这里演示一个简单的选择数据,显示在UITextField输入框里,把UIPickerView作为输入View,用Toolbar作为选定数据的按钮。和其他UITableView控件相似,UIPickerView也需要数据源。
我们要实现的效果如下:
下面开始使用的步骤。
1、打开XCode 4.3.2,新建一个Single View Application ,命名为PickerViewDemo,Company Identifier 为:com.rongfzh.yc
2、拖放控件
2.1、拖放一个UIPickerView,放置在View的最下方
2.2、拖放一个Toolbar控件,放置在View的外面,让它不属于View的子控件,并把item命名为“完成”,效果如下:
2.3 放置一个Flexible Space Bar Button Item 撑开
2.4 放一个UITextField,用来显示选择的数据
3、创建映射
在ViewController.xib文件里按 alt + command+ enter键,打开Assistant Editor,按住Control键,选择各个控件,拖拽到 ViewController.h文件里,生成以下变量代码
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
{
NSArray *pickerArray;
}
- (IBAction)selectButton:(id)sender;
@property (strong, nonatomic) IBOutlet UIToolbar *doneToolbar;
@property (strong, nonatomic) IBOutlet UIPickerView *selectPicker;
@property (strong, nonatomic) IBOutlet UITextField *textField;
@end
4、实现数据源和协议
ViewController.h文件里实现
<UIPickerViewDelegate, UITextFieldDelegate,UIPickerViewDataSource>
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController<UIPickerViewDelegate, UITextFieldDelegate,UIPickerViewDataSource>
{
NSArray *pickerArray;
}
- (IBAction)selectButton:(id)sender;
@property (strong, nonatomic) IBOutlet UIToolbar *doneToolbar;
@property (strong, nonatomic) IBOutlet UIPickerView *selectPicker;
@property (strong, nonatomic) IBOutlet UITextField *textField;
@end
ViewController.m文件
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 1;
}
-(NSInteger) pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
return [pickerArray count];
}
-(NSString*) pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
return [pickerArray objectAtIndex:row];
}
-(void)textFieldDidEndEditing:(UITextField *)textField{
NSInteger row = [selectPicker selectedRowInComponent:0];
self.textField.text = [pickerArray objectAtIndex:row];
}
上面numberOfComponentsInPickerView返回有几个PickerView ,
textFieldDidEndEditing这个在textField结束编辑时,显示PickerView选择中的数据。
Toolbar 的item的完成按钮
- (IBAction)selectButton:(id)sender {
[textField endEditing:YES];
}
5、初始化
- (void)viewDidLoad
{
[super viewDidLoad];
pickerArray = [NSArray arrayWithObjects:@"动物",@"植物",@"石头",@"天空", nil];
textField.inputView = selectPicker;
textField.inputAccessoryView = doneToolbar;
textField.delegate = self;
selectPicker.delegate = self;
selectPicker.dataSource = self;
selectPicker.frame = CGRectMake(0, 480, 320, 216);
}
代码解释:
设置委托
textField.delegate =self;
selectPicker.delegate =self;
selectPicker.dataSource =self;
隐藏UIPickerView
selectPicker.frame =CGRectMake(0,480,320, 216);
运行:
例子代码:http://download.csdn.net/detail/totogo2010/4391870
https://github.com/schelling/YcDemo
分享到:
相关推荐
主要介绍了详解iOS开发中UIPickerView控件的使用方法,代码基于传统的Objective-C,需要的朋友可以参考下
两个UIPickerView控件间的数据依赖,学习ios中的UIPickerView控件间必备资源。
好久没写过基础控件了,工作了好多都focus在功能代码了。都快把基础代码都扔掉了。复习下基础控件使用。 这是UI控件的UIPickerView 使用。包含三个小demo
UIPickerView控件是比UIDatePicker控件更普通的Picker控件,UIDatePicker控件可以理解成是从UIPickerView控件加工出来的专门进行日期选择的控件。 UIPickerView控件的用法比UIDatePicker复杂一点。本文中的小例子将...
给大家介绍iOS利用控件UIPickerView实现城市选择器的效果,选择城市这一功能相信在大家日常开发的时候经常遇见,下面就来看看详细的实现过程,有需要的可以参考借鉴。
UIPikerView时间选择器,自定义控件,选中颜色变化,取消和确定选中时间。开始进入选择器选中时间等操作!代理方法和控件代理及可实现
我自己写的一个省市区选择UIPickerView,还没经过严格测试,可能存在bug,有问题请给我留言,我会第一时间处理的,谢谢!
在WPF中创建UIPickerView(iPhone上常见的“ tumblers” UI)控件的示例代码和演练。
UIPickerView Demo 选择器控件源代码
一款自定义的UICombox控件,具体看:http://blog.csdn.net/kangkangz4/article/details/7839571
包含常用的控件的使用UILabel、UIButton、UIsegmentedControl、UITextField、UISlider、UISwitch、UIActivityIndicatorView、UIProgressView、UIStepper、UIImageView、UIAlertView、UIActionSheep、UIDatePicker、...
iOS实现收货地址省市区三级联动功能,使用的是UIPickerView实现的。可以拿来直接使用。
http://blog.csdn.net/qq_15509071/article/details/72470108这篇博客的示例demo
CHDigitInput 标准选择器视图的缺点是,例如,您要输入数字999999,但是控件当前在555555上,因此滚动到所需的值需要花费一些时间。 一种选择是使用普通文本字段。 但是,如果您只想更改中间的3位数字,这也是一种...
UIDatePicker是一个可以用来选择或者设置日期的控件,不过它是像转轮一样的控件,而且是苹果专门为日历做好的控件。本文是实例教程,文章后给出源代码
App开发中经常会有日期选择(如生日、睡眠定时等)或者省市区选择等此类功能,通常UI中不会单独使用UI中的控件,而是在UIPickerView的基础上增加一个取消和确定按钮 特点 1、支持常见的选择型的数据格式 该控件集成...