首页 > 代码库 > iOS7_关于UIPickerView_如何实现UIPickerView_如何设定UIPickerView组数_每组数据的行数

iOS7_关于UIPickerView_如何实现UIPickerView_如何设定UIPickerView组数_每组数据的行数

在界面上实现一个UIPickerView:

1、新建一个 singleViewApplication,在 xxxViewController.m文件中:

 1 @interface moboViewController ()

2 @property (nonatomic, strong) UIPickerView *picker;

3 @end 

2、在 -(void)viewDidLoad方法中,实现:

- (void)viewDidLoad{    [super viewDidLoad];        //实例化    self.picker = [[UIPickerView alloc]init];        //位置    self.picker.center = self.view.center;        //添加到 view    [self.view addSubview:self.picker];}

3、CMD+R 跑起来:

发现是空白!为什么呢?我们进UIPickerView的头文件看一看,按住CMD点击UIPickerView,我们发现:

 1 @protocol UIPickerViewDataSource, UIPickerViewDelegate; 

哈哈!是因为我们还没有遵守TA的 数据源协议和代理方法 呢!

4、那我们遵守 数据源和 代理协议,在 controller.m文件中的 @interface 部分后面,来遵守协议:

 1 @interface moboViewController ()<UIPickerViewDelegate,UIPickerViewDataSource> //遵守协议

2 @property (nonatomic, strong) UIPickerView *picker;  

@end 

5、在 -(void)viewDidLoad 中我们设置 代理 和数据源为 self:

 1 - (void)viewDidLoad 2 { 3     [super viewDidLoad]; 4      5     //实例化 6     self.picker = [[UIPickerView alloc]init]; 7      8     //设置代理 9     self.picker.delegate = self;10     11     //设置数据源12     self.picker.dataSource = self;13     14     //位置15     self.picker.center = self.view.center;16     17     //添加到 view18     [self.view addSubview:self.picker];19 20 }

6、实现数据源和代理方法:

//返回组数,我们直接来返回2组好了。

1 - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView2 {3     if ([pickerView isEqual:self.picker]) { //如果传进来的pickerview是刚实现的picker就返回24         return 2;5     }6     7     return 0; //如果不是就返回08 }

//返回每组的数据的行数,10行好了。

1 -(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component2 {3     if ([pickerView isEqual:self.picker]) { //如果传进来的pickerview是刚实现的picker就返回104         return 10;5     }6     7     return 0;//如果不是就返回08 }
 1 /* 2  实现代理方法 3  */ 4  5 - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 6 { 7     if ([pickerView isEqual:self.picker]) { 8          9         if (component == 0) {10             return [NSString stringWithFormat:@"A %d", row+1];11         }12         else if(component ==1){13             return [NSString stringWithFormat:@"B %d", row+1];14         }15         16     }17     return  0;18 }

7、CMD+R,跑起来!

 

iOS7_关于UIPickerView_如何实现UIPickerView_如何设定UIPickerView组数_每组数据的行数