iOS开发-数据选择UIPickerView(案例二)
2016-02-19 22:10
429 查看
iOS学习之UIPickerView控件的简单使用
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]
UIPickerView控件在给用户选择某些特定的数据时经常使用到,这里演示一个简单的选择数据,显示在UITextField输入框里,把UIPickerView作为输入View,用Toolbar作为选定数据的按钮。和其他UITableView控件相似,UIPickerView也需要数据源。
我们要实现的效果如下:
![](http://my.csdn.net/uploads/201206/25/1340611762_6513.png)
下面开始使用的步骤。
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命名为“完成”,效果如下:
![](http://my.csdn.net/uploads/201206/25/1340609851_6776.png)
2.3 放置一个Flexible Space Bar Button Item 撑开
![](http://my.csdn.net/uploads/201206/25/1340610161_5053.png)
2.4 放一个UITextField,用来显示选择的数据
![](http://my.csdn.net/uploads/201206/25/1340610343_1922.png)
3、创建映射
在ViewController.xib文件里按 alt + command+ enter键,打开Assistant Editor,按住Control键,选择各个控件,拖拽到 ViewController.h文件里,生成以下变量代码[cpp] view
plain copy
#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
![](http://my.csdn.net/uploads/201206/25/1340611059_8141.png)
4、实现数据源和协议
ViewController.h文件里实现<UIPickerViewDelegate, UITextFieldDelegate,UIPickerViewDataSource>
[cpp] view
plain copy
#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文件
[cpp] view
plain copy
-(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的完成按钮
[cpp] view
plain copy
- (IBAction)selectButton:(id)sender {
[textField endEditing:YES];
}
5、初始化
[cpp] viewplain copy
- (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://my.csdn.net/uploads/201206/25/1340611762_6513.png)
例子代码:http://download.csdn.net/detail/totogo2010/4391870
https://github.com/schelling/YcDemo
著作权声明:本文由http://blog.csdn.net/totogo2010/原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢
相关文章推荐
- iOS开发-数据选择UIPickerView(案例一)
- 诺看看图王 (基于DUI SOUI 库开发而成)
- iOS-UI-基本控件之UIView
- 【SPOJ-GSS6】Can you answer these queries VI【Splay】
- UI整理-----part3--UITableView
- EasyUI系列学习(八)-ProgressBar(进度条)
- 【Lintcode】Building Outline
- HDU 4908 BestCoder Sequence
- Easyui-datagrid显示时间的格式化代码
- EasyUI系列学习(七)-Linkbutton(按钮)
- iOS UISearchBar学习笔记
- 你所不知道的UITabBarButton?
- java(15)--servlet中Request相关知识
- 频率特性曲线_20160218
- ZOJ-2966-Build The Electric System【5th浙江省赛】【最小生成树】
- NGUI利用两个摄像机裁剪特效
- iOS开发之UICollectionView
- UI到底应该用xib/storyboard完成,还是用手写代码来完成?
- quick-mark: How Latency is Measured
- Animation动画详解(四)——ValueAnimator基本使用