【问题标题】:UIPickerView - How to make certain rows unselectable and grayed outUIPickerView - 如何使某些行无法选择并变灰
【发布时间】:2010-10-29 21:42:54
【问题描述】:
我正在为日期创建自己的 UIPickerview,因为我只需要月份和日期并且不需要年份,所以我不能使用 UIDatePicker。 When different months are selected I cannot seem to replicate the way UIDatepicker gray's out the unavailable days.
For example: when November is selected days 1-30 are selectable but 31 is not when using the UIDatepicker.有谁知道如何复制它并使某些行变灰且无法选择。
提前致谢
【问题讨论】:
标签:
uipickerview
uidatepicker
uipicker
【解决方案1】:
我知道你可能已经想通了,但我想为那些寻找相同答案的人添加一些进一步的信息。
您可以尝试的另一种途径是通过:
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
在该方法中,您将检查 pickerView 中的特定组件是否具有有效选择。如果没有,则将特定组件(列 - 他们为什么不直接调用它)重置为有效行:
[pickerView selectRow:validRow inComponent:component animated:YES];
这将产生这样的效果:如果用户选择了一个特定的无效行,它将向上(或向下)滚动到一个有效行。
此外,您可以更改相关组件的数据集,然后执行以下操作:
[pickerView reloadAllComponents];
请记住,当您设置选取器时,您必须在第一次运行时进行此验证,以确保默认情况下选取器视图中没有无效数据集。