是否可以从另一侧动态过滤选择?
例如
|汽车类型|颜色|
|丰田|蓝色,黄色|
|福特|绿色,橙色,紫色|
|法拉利|红色,绿色,黄色|
因此,当显示UIPickerview时,我可以选择不同类型的汽车。选择汽车类型后,我希望只能选择指定的颜色。
目前,我可以在显示UIPickerView时加载所有车型和仅一种颜色范围。我不知道是否可以通过左侧的选项动态生成右侧。
答案 0 :(得分:1)
实际上这很简单。您需要根据component 1
中选择的内容返回component 0
的相关颜色,例如:
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
//...
case 1:
{
NSArray *colors = [self colorsWithSelection:self.selectedRow0];
return colors[row];
}
//...
}
然后实施以下内容:
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
if (component == 0)
{
self.selectedRow0 = row;
[pickerView reloadComponent:1];
dispatch_async(dispatch_get_main_queue(), ^{
[pickerView selectRow:0 inComponent:1 animated:YES];
});
}
}
显然,这可以进行优化,但它显示了这个想法。