///多少列
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 3;
}
///每列返回?cái)?shù)據(jù)
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
if (component == 0) return self.area1Models.count;
else if (component == 1) return self.area2Models.count;
return self.area3Models.count;
}
///顯示的標(biāo)題
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
TBAreaModel *model;
if (component == 0) model = self.area1Models[row];
else if (component == 1) model = self.area2Models[row];
else model = self.area3Models[row];
return model.name;
}
///行高
- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{
return 44;
}
選擇對(duì)應(yīng)列苗桂,刷新后行列的數(shù)據(jù)源
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
if (component == 0) [self pickerViewSelect:row];
if (component == 1) {
TBAreaModel *model = self.area2Models[row];
self.area3Models = model.childrenList;
[pickerView reloadAllComponents];
[pickerView selectRow:0 inComponent:2 animated:YES];//更新后面列顯示第一個(gè)
}
}
- (void)pickerViewSelect:(NSInteger)row{
TBAreaModel *model = self.area1Models[row];
self.area2Models = model.childrenList;
self.area3Models = model.childrenList.firstObject.childrenList;
[self.pickerView reloadAllComponents];
[self.pickerView selectRow:0 inComponent:1 animated:YES];//更新后面列顯示第一個(gè)
[self.pickerView selectRow:0 inComponent:2 animated:YES];//更新后面列顯示第一個(gè)
}
獲取選擇的結(jié)果
NSInteger proviceIndex = [self.pickerView selectedRowInComponent:0];
NSInteger cityIndex = [self.pickerView selectedRowInComponent:1];
NSInteger countryIndex = [self.pickerView selectedRowInComponent:2];