2011-09-28 9 views
6

Puedo encontrar una publicación que enseñe a usar el método delegado para verificar si la fila es válida y luego desplazarse a la derecha si no es así.¿Puedo deshabilitar la selección en un elemento UIPickerView específico?

Pero eso no es lo que quiero. ¿Puedo deshabilitar la fila específica después de que se haya inicializado PickerView? Como "Apagar" la fila y no se puede detener el indicador en ella.

Gracias, expertos.

Respuesta

10

Hay dos partes para hacer esto.

  1. -[<UIPickerViewDelegate> pickerView:viewForRow:forComponent:reusingView:] Uso para devolver una vista personalizada para cada fila, como un UILabel. Para la fila que desea mostrar como deshabilitada, deberá configurar la vista para reflejar esa discapacidad.
  2. En -[<UIPickerViewDelegate> pickerView:didSelectRow:inComponent:], deberá detectar cuándo se seleccionó la opción deshabilitada y luego usar -[UIPickerView selectRow:inComponent:animated:] para "revertir" a una fila "válida".
+1

tengo alguna idea ahora, gracias. – mineschan

+1

Muchas gracias por la información ... Funciona perfectamente ... – iOSAppDev

0

También puede simplemente dejar un espacio en blanco en la puesta en práctica, por ejemplo .:

- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { 
    if(row==0){ 
//Code 
} 
if(row==1){ 

//BLANK 

} 
if(row==2){ 
//Code 
} 
Cuestiones relacionadas