我正在为日期创建自己的UIPickerview,因为我只需要几个月和几天而且不需要几年,所以我不能使用UIDatePicker。当选择不同的月份时,我似乎无法复制UIDatepicker灰色不可用日期的方式。 例如:选择11月时,可选择1-30天,但使用UIDatepicker时则不是31。有谁知道如何复制这个并使某些行变灰并且无法选择。 提前致谢
答案 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)
您将不得不编写自定义选择器视图