我使用UIPickerView(例如)4行。第一个值是"选择一个值"灰色文字。其他是用户应该用黑色文本选择的值。
选择是可选的,因此用户可以跳过它。但是,如果他们不这样做,那么在用户开始挑选后,如何让第一个价值无法回复?
感谢。 问候。
答案 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:
方法。