(iOS)如何使UIPickerView中的第一个值无法选择?

时间:2014-03-26 11:07:26

标签: ios uipickerview uipicker

我使用UIPickerView(例如)4行。第一个值是"选择一个值"灰色文字。其他是用户应该用黑色文本选择的值。

选择是可选的,因此用户可以跳过它。但是,如果他们不这样做,那么在用户开始挑选后,如何让第一个价值无法回复?

感谢。 问候。

1 个答案:

答案 0 :(得分:1)

如果选择了第一行,请使用UIPickerView委托方法- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component更改所选行:

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

    if (row == 0) {
        [pickerView selectRow:row+1 inComponent:component animated:YES];
    }
}

编辑:您可以使用以下方法更改文字颜色:

- (NSAttributedString *)pickerView:(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component {

    if (row == 0)
        return [[NSAttributedString alloc] initWithString:@"Pick a value" attributes:@{NSForegroundColorAttributeName:[UIColor lightGrayColor]}];
    else {
        // Return titles
    }
}

如果你的目标是iOS 6+,它会取代之前使用的-pickerView:titleForRow:forComponent:方法。