【问题标题】: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];
    

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2016-04-09
        • 1970-01-01
        • 2011-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多