UIPickerView - 如何使某些行无法选择并变灰

时间:2010-10-29 21:42:54

标签: uipickerview uidatepicker uipicker

我正在为日期创建自己的UIPickerview,因为我只需要几个月和几天而且不需要几年,所以我不能使用UIDatePicker。当选择不同的月份时,我似乎无法复制UIDatepicker灰色不可用日期的方式。 例如:选择11月时,可选择1-30天,但使用UIDatepicker时则不是31。有谁知道如何复制这个并使某些行变灰并且无法选择。 提前致谢

2 个答案:

答案 0 :(得分:2)

我意识到你可能已经想到了这一点,但我想为那些寻找相同答案的人添加更多信息。

您可以尝试的另一种途径是:

-(void)pickerView:(UIPickerView  *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component

在该方法中,您将检查pickerView中的特定组件是否具有有效选择。如果没有,那么将特定组件(列 - 为什么不将它们称之为)重置为有效行:

[pickerView selectRow:validRow inComponent:component animated:YES];

这将产生这样的效果:如果用户选择一个特定的无效行,它将向上(或向下)向后滚动到有效行。

此外,您可以更改相关组件的数据集,然后执行:

[pickerView reloadAllComponents];

请记住,当您设置选择器时,您必须在第一次运行时执行此验证,因此请确保默认情况下pickerView中没有无效数据集。

答案 1 :(得分:0)

您将不得不编写自定义选择器视图