UIPickerView是UIDatePicker的父类,他有两个重要的代理
- UIPickerViewDataSource
- UIPickerViewDelegate
UIPickerViewDataSource是Picker的数据源的委托,必须继承的方法有:
- numberOfComponentsInPickerView://选择器中拨轮的数码
//代表总共有两个拨轮 - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { return 2; }
- pickerView:numberOfRowsInComponent://选择器中某拨轮的行数
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { if (component == 0) { return //拨轮的索引为0的时候,有多少行 } else { return //拨轮的索引为1的时候,有多少行 } }
UIPickerViewDelegate是动作的委托,必须继承的方法有:
- pickerView:titleForRow:forComponent://某个拨轮的行提供显示的数据
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { if (component == 0) { return //第一个拨轮所在的索引row时显示的名字 } else {//选择市名 return //第二个拨轮所在的索引row时显示的名字 } }
- pickerView:didSelectRow:inComponent://某个拨轮的某选时的调用
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { if (component == 0) { //当拨轮所在的列为0的时候,所在行数选择后对应的反应,可包括刷新第二列的动作 [self.pickerView reloadComponent:1];//刷新第二列的代码 } }
当获取信息的时候可使用以下方法,获取当前列所选择的索引
- (NSInteger)selectedRowInComponent:(NSInteger)component;