Color de la fila Uipickerview -- iphone campo con cocoa-touch camp Relacionados El problema

UIPickerView Row Color


8
vote

problema

Español

¿Alguien sabe cómo cambiar el color de una fila (o fondo de fila) en el control Uipickerview desde el iPhone SDK? Similiar para el siguiente título de fila, sin embargo, también me gustaría cambiar el color de la fila:

  - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;   

gracias.

Original en ingles

Does anyone know how to change the color of a row (or row background) in the UIPickerView control from the iPhone SDK? Similiar to the below title for row, however I would also like to change the color of the row:

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component; 

Thank you.

     

Lista de respuestas

10
 
vote
vote
La mejor respuesta
 

Puede devolver una vista arbitraria en el Delegado -pickerview: ViewForrow: ForComponent: ReusingView: Método, documentado aquí .

 

You can return an arbitrary view in the delegate's -pickerView:viewForRow:forComponent:reusingView: method, documented here.

 
 
14
 
vote

gracias noah, eso es exactamente lo que necesitaba. Quería agregar el código aquí en caso de que alguien más necesite (o quiera comentar sobre :)

         <DataGrid  AutoGenerateColumns="false" Name="dataGrid"         InitializingNewItem="dataGrid_InitializingNewItem" ItemsSource=" {Binding SchadwagenVorgänge}">     <DataGrid.Columns>         <DataGridTextColumn IsReadOnly="False"  Header="Bezeichnung" Width="*" Binding="{Binding Description}"  />         <DataGridTextColumn IsReadOnly="False"  Header="Sortierposition" Width="Auto" Binding="{Binding SortOrder}"  />         <DataGridCheckBoxColumn  Header="Umstellung" Width="Auto" Binding="{Binding ChangeOver }"   />     </DataGrid.Columns> </DataGrid> 4  
 

Thanks Noah, that's exactly what I needed. I wanted to add the code here just in case anyone else needs (or wants to comment on :)

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {      CGRect imageFrame = CGRectMake(0.0, 0.0, 15, 15);     UIImageView *label = [[[UIImageView alloc] initWithFrame:imageFrame] **autorelease**];      if (row == 0)     {         label.backgroundColor = [UIColor redColor];     }     if (row == 1)     {         label.backgroundColor = [UIColor blueColor];     }     if (row == 2)     {         label.backgroundColor = [UIColor blackColor];     }        return label; } 
 
 
   
   
3
 
vote

Implementé lo siguiente basado en la respuesta de Sean:

         <DataGrid  AutoGenerateColumns="false" Name="dataGrid"         InitializingNewItem="dataGrid_InitializingNewItem" ItemsSource=" {Binding SchadwagenVorgänge}">     <DataGrid.Columns>         <DataGridTextColumn IsReadOnly="False"  Header="Bezeichnung" Width="*" Binding="{Binding Description}"  />         <DataGridTextColumn IsReadOnly="False"  Header="Sortierposition" Width="Auto" Binding="{Binding SortOrder}"  />         <DataGridCheckBoxColumn  Header="Umstellung" Width="Auto" Binding="{Binding ChangeOver }"   />     </DataGrid.Columns> </DataGrid> 5  
 

I implemented the following based on Sean's answer:

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {     CGRect rowFrame = CGRectMake(00.0f, 0.0f, [pickerView viewForRow:row forComponent:component].frame.size.width, [pickerView viewForRow:row forComponent:component].frame.size.height);     UILabel *label = [[UILabel alloc] initWithFrame:rowFrame];     label.font = [UIFont boldSystemFontOfSize:18.0f];      // This is an array I pass to the picker in prepareForSegue:sender:     label.text = [self.values objectAtIndex:row];     label.textAlignment = UITextAlignmentCenter;      // This is an array I pass to the picker in prepareForSegue:sender:     if ([self.backgroundColors count]) {         label.backgroundColor = [self.backgroundColors objectAtIndex:row];          // self.lightColors is an array I instantiate in viewDidLoad: self.lightColors = @[ [UIColor yellowColor], [UIColor greenColor], [UIColor whiteColor] ];         label.textColor = [self.lightColors containsObject:label.backgroundColor] ? [UIColor blackColor] : [UIColor whiteColor];     } else {         label.textColor = [UIColor blackColor];     }      return label; } 
 
 
0
 
vote
         <DataGrid  AutoGenerateColumns="false" Name="dataGrid"         InitializingNewItem="dataGrid_InitializingNewItem" ItemsSource=" {Binding SchadwagenVorgänge}">     <DataGrid.Columns>         <DataGridTextColumn IsReadOnly="False"  Header="Bezeichnung" Width="*" Binding="{Binding Description}"  />         <DataGridTextColumn IsReadOnly="False"  Header="Sortierposition" Width="Auto" Binding="{Binding SortOrder}"  />         <DataGridCheckBoxColumn  Header="Umstellung" Width="Auto" Binding="{Binding ChangeOver }"   />     </DataGrid.Columns> </DataGrid> 6  

y

         <DataGrid  AutoGenerateColumns="false" Name="dataGrid"         InitializingNewItem="dataGrid_InitializingNewItem" ItemsSource=" {Binding SchadwagenVorgänge}">     <DataGrid.Columns>         <DataGridTextColumn IsReadOnly="False"  Header="Bezeichnung" Width="*" Binding="{Binding Description}"  />         <DataGridTextColumn IsReadOnly="False"  Header="Sortierposition" Width="Auto" Binding="{Binding SortOrder}"  />         <DataGridCheckBoxColumn  Header="Umstellung" Width="Auto" Binding="{Binding ChangeOver }"   />     </DataGrid.Columns> </DataGrid> 7  
 
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{      UILabel *labelSelected = (UILabel*)[pickerView viewForRow:row forComponent:component];     [labelSelected setTextColor:[UIColor redColor]];  } 

And

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{      UILabel *label = (id)view;      if (!label){        label=[[UILabel alloc]init];       label.textAlignment = NSTextAlignmentCenter;       pickerView.backgroundColor=[UIColor whiteColor];       label.text=[self pickerView:pickerView titleForRow:row forComponent:component];       label.textColor=[UIColor grayColor];      }     return label; } 
 
 
-7
 
vote

Haga esto:

         <DataGrid  AutoGenerateColumns="false" Name="dataGrid"         InitializingNewItem="dataGrid_InitializingNewItem" ItemsSource=" {Binding SchadwagenVorgänge}">     <DataGrid.Columns>         <DataGridTextColumn IsReadOnly="False"  Header="Bezeichnung" Width="*" Binding="{Binding Description}"  />         <DataGridTextColumn IsReadOnly="False"  Header="Sortierposition" Width="Auto" Binding="{Binding SortOrder}"  />         <DataGridCheckBoxColumn  Header="Umstellung" Width="Auto" Binding="{Binding ChangeOver }"   />     </DataGrid.Columns> </DataGrid> 8  
 

Do this:

label.backgroundColor = [UIColor yourcolorColor]; 
 
 

Relacionados problema

21  ¿Cómo eliminar la "reflexión blanca" en el icono de la aplicación? [duplicar]  ( How to remove the white reflection on the application icon ) 
Esta pregunta ya tiene respuestas aquí : cerrado 8 años . posible duplicado: ¿Cómo deshabi...

75  iPhone "Diapositiva para desbloquear" animación "  ( Iphone slide to unlock animation ) 
¿Alguna idea de cómo Apple implementó la "Slide to Desbloquear" (también, "Diapositiva para apagar" es otra animación de otro ejemplo)? Pensé en algún tipo ...

79  ¿Cómo deshabilitar el resaltado del icono de la aplicación?  ( How to disable highlighting of the app icon ) 
¿Cómo puedo deshabilitar el resaltado que aparece en mi icono mientras se muestra en la página de inicio de iPhone? gracias. ...

10  SetneedsDisplay no siempre llama Drawrect  ( Setneedsdisplay doesnt always call drawrect ) 
Tengo una vista personalizada en una celda de tabla personalizada. Cada vez que se cambia una propiedad específica en la vista personalizada, llamo [self set...

9  Las mejores prácticas de SQLite en el iPhone [CERRADO]  ( Best sqlite practices on the iphone ) 
Según lo que actualmente representa, esta pregunta no es un buen ajuste para nuestro Q & Amp; un formato. Esperamos que las...

7  Eliminar la línea blanca junto al control de reordenar en UITYViewcell agrupado  ( Remove white line next to reorder control on grouped uitableviewcell ) 
He construido una interfaz de usuario personalizada para mi mesa que tiene una interfaz de usuario más oscura y un accesorio personalizado. Cuando pongo la ta...

1  NSNUMENTORFORMATT NO HAN HONRANDO INFORMACIÓN DE DIGITOS EN ESTILO CIENTÍFICO  ( Nsnumberformatter not honoring digit information in scientific style ) 
Estoy tratando de mostrar algunos decimales en un estilo científico. Estoy usando objetos nsdecimalnumber y nsnumberformatters. Sin embargo, al configurar el ...

2  Problemas con una marca de verificación en una UTIableViewcell  ( Problems with a checkmark in a uitableviewcell ) 
He implementado esto por debajo del código. UITableViewCell *cell = [tableView1 cellForRowAtIndexPath:indexPath]; UITableViewCell *cell2 = [tableView1 cell...

3  ¡UINVATIGUSCURTROLLER POMVIEWCONTROLLER ESTÁ HACIENDO TODO!  ( Uinavigationcontroller popviewcontroller is popping everything ) 
Así que estoy tratando de hacer un controlador de visualización de la pila cuando se produce un error, pero parece que está apareciendo demasiado de una sola ...

0  ¿Cómo pasa los datos entre las vistas con un UINVIGICOCONTROLLER?  ( How do you pass data between views using a uinavigationcontroller ) 
He intentado usar el método obvio como se describe en el siguiente ejemplo, pero mi variable pasada ( RootCategory ) sigue siendo nil en la vista Viewdidid ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos