2011-04-01 26 views
13

¿Alguien sabe si es posible cambiar la fuente y/o el color de los elementos individuales de UIPickerView?UIPickerView Font

Respuesta

19

Sí, es posible. Para hacerlo, debe implementar el método pickerView:viewForRow:forComponent:reusingView: en el delegado del selector: cree allí la instancia UILabel y configúrela con los atributos que desee.

+0

Sí !! ¡Gracias, funciona genial! – LilMoke

+3

Genial, pero ¿cómo sabrías los atributos predeterminados de Label sin adivinar? –

35
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{ 
    UILabel* tView = (UILabel*)view; 
    if (!tView){ 
     tView = [[UILabel alloc] init]; 
      // Setup label properties - frame, font, colors etc 
      ... 
    } 
    // Fill the label text here 
    ... 
    return tView; 
} 
+0

Gracias, funciona bien. –

0

Para esto, simplemente iría con cadenas atribuidas.

implementar este método es su delegado:

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

Probé esto; no funcionó (iOS 9.3), aunque se llamaba. –

+0

Me funcionó con iOS 9.3. ¿Estás seguro de que estás creando NSAttributedString correctamente? – Rickster

+0

Seguramente debo haber estado haciendo algo mal, aunque no pude ver qué. Al final, hice lo sugerido en las otras respuestas y devolví una etiqueta configurada. –