1 UIPickerView主要掌握其数据源跟代理方法。即实现它们的协议UIPickerViewDataSource,UIPickerViewDelegate
#pragma mark -PickerView的数据源方法
//告诉PickerView中有多少组,即有多少个滚轮。
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
//告诉PickerView中"对应的组"中的有多少行。
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
- #pragma mark -PickerView的代理方法
//告诉PickerView中每一组每一行显示文字。
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
//当手指滑动PickerView时,PickerView会告诉我们 现在选择的是 第几组(component)第几行(row)。
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component;
-#pragma mark 通常用于自定义pickerView的cellView
//参数:(UIView *)view代表的是 如果有可循环使用的View的话,会返回该View,若没有则返回为空。另外,该循环引用在iOS6中是没有问题的,但是在iOS7中则有bug(苹果官方承认的,但是不知道是否已经有修正)。
-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view;
-#pragma mark 设置pickerView里每一个view的高度
-(CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component;
#pragma mark 设置pickerView里每一个view的宽度
-(CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component;
2 UIPickerView其他的一些常用的方法
//获取选中行的行号
int row = [self.pickerView selectedRowInComponent:i];
//通过"代码"的形式 设置(选中) 某一组某一行
[self.pickerView selectRow:randomRow inComponent:i animated:YES];
//刷新第i组的数据
[self.pickerView reloadComponent:i];
原文地址:http://blog.csdn.net/fan_yufan/article/details/45937641