是否可以从一侧与另一侧动态过滤选择?
例如
| 车型 | 颜色 |
| 丰田 | 蓝色,黄色 |
| 福特 | 绿色、橙色、紫色 |
| 法拉利 | 红、绿、黄 |
因此,当 UIPickerview 显示时,我可以选择不同类型的汽车。在选择汽车类型时,我希望能够只选择指定的颜色。
目前,当 UIPickerView 显示时,我只能加载所有汽车类型和一种颜色范围。我不知道是否可以使用左侧的选项动态生成右侧。
是否可以从一侧与另一侧动态过滤选择?
例如
| 车型 | 颜色 |
| 丰田 | 蓝色,黄色 |
| 福特 | 绿色、橙色、紫色 |
| 法拉利 | 红、绿、黄 |
因此,当 UIPickerview 显示时,我可以选择不同类型的汽车。在选择汽车类型时,我希望能够只选择指定的颜色。
目前,当 UIPickerView 显示时,我只能加载所有汽车类型和一种颜色范围。我不知道是否可以使用左侧的选项动态生成右侧。
这实际上很简单。您需要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];
});
}
}
显然这可以优化,但它显示了这个想法。