1.UIPickerView的初始化
pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0.0f, 200.0f, 320.0f, 216.0f)];
pickerView.delegate = self; //指定Delegate
pickerView.showsSelectionIndicator = YES; //显示选中框
2.实现UIPickerViewDelegate和UIPickerViewDataSource
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView; //返回列数
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component; //返回每列的最大行数
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component; //每一列中每一行的具体内容
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component //选中哪一列哪一行
[mypicker selectRow:(NSInteger)3 inComponent:0 animated:YES];
一个示例:
1.在.h头文件里面添加以下代码:
- #import <UIKit/UIKit.h>
- @interface PickerView : UIViewController {
- IBOutlet UIPickerView * mypickerView;//连接的时候记得连上delegate
- IBOutlet UILabel * mylabel;
- NSArray *pickerViewData;//pickerView的数据
- }
- @property(nonatomic,retain) UIPickerView * mypickerView;
- @property(nonatomic,retain) UILabel * mylabel;
- @property(nonatomic,retain) NSArray *pickerViewData;//注意加上这句
- -(IBAction) showSelectmessage;//按钮点击事件
- @end
2.在xib文件里面添加一个pickerView,一个button,一个label,如下图所示,要实现的功能是在pickerView里面滚动选择某一项,然后点击“点我显示选择的信息”按钮将pickerView中选中的内容显示在最下面的label中:
3.连接各项,将view中的Picker View与mypickerView连接,将“点我显示选择的信息”button的Touch Up Inside事件与showSelectmessage方法相连,将view中label与mylabel相连,将view中Picker View的dataSource和delegate连接到File‘s Owner,如下图所示:
4.在viewDidLoad方法中添加如下代码,初始化pickerView的数据:
- - (void)viewDidLoad
- {
- NSArray *array=[[NSArray alloc] initWithObjects:@"哈哈",
- @"two",
- @"three",
- @"four",
- @"five",
- nil];
- self.pickerViewData = array;//注意一定要写self,否则不对
- [array release];
- [super viewDidLoad];
- -(IBAction) showSelectmessage{
- NSInteger row = [mypickerView selectedRowInComponent:0];
- NSString * mys = [pickerViewData objectAtIndex:row];
- mylabel.text = mys;
- }
- -(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
- {
- return 1;
- }
7.实现如下方法,设置Picker View视图中显示的项(行)数:
- -(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
- {
- return [pickerViewData count];
- }
8.实现如下方法,将pickerviewData数据填充到Picker View中:
- -(UIView *)pickerView:(UIPickerView *)pickerView
- titleForRow:(NSInteger)row
- forComponent:(NSInteger)component
- {
- return [pickerViewData objectAtIndex:row];
- }
