2012-01-24 10 views

Respuesta

1

Puede probar siguiente línea de código en el cuadro método de creación de células -

cell.textLabel.backgroundColor = //Your color; 
cell.detailTextLabel.backgroundColor = //Your color; 

Se puede hacer referencia siguiente para descripción más detallada, donde se puede encontrar el detalle del ejemplo de creación de tabla seccionada costumbre similar a lo que usted ha mencionado - http://undefinedvalue.com/2009/08/25/changing-background-color-and-section-header-text-color-grouped-style-uitableview

+0

Quiero cambiar el título de la sección, no la etiqueta de la celda. –

+0

significa encabezado de la sección de la tabla. – rishi

+0

Sí, quise decir la etiqueta del encabezado. –

5

Implemente el método tableView:viewForHeaderInSection: en tableViewController. Eso le permitirá proporcionar su propia vista para los encabezados, que puede incluir un UILabel con el formato que desee, p.

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
    UILabel *customLabel = [[UILabel alloc] init]; 
    customLabel.text = [self tableView:tableView titleForHeaderInSection:section]; 
    return customLabel; 
} 

Recuerde establecer el marco de la etiqueta para que sea lo suficientemente alto como para espaciar las secciones. Es posible que desee insertar la etiqueta dentro de una UIView más grande y devolverla para simplificar el posicionamiento (por ejemplo, si desea aumentar el margen izquierdo en la etiqueta).

+0

Esto es una fuga. Libere o libere de forma automática CustomLabel. – stephen

+2

Estaba asumiendo que estaba usando ARC. –

54

Esta es una pregunta anterior, pero creo que la respuesta debe actualizarse.

Este método no implica la definición y creación de su propia vista personalizada. En iOS 6 en adelante, se puede cambiar fácilmente el color de fondo y el color del texto, definiendo el método delegado

-(void)tableView:(UITableView *)tableView 
    willDisplayHeaderView:(UIView *)view 
    forSection:(NSInteger) 

.

Por ejemplo:

- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section 
{ 
    // Background color 
    view.tintColor = [UIColor blackColor]; 

    // Text Color 
    UITableViewHeaderFooterView *header = (UITableViewHeaderFooterView *)view; 
    [header.textLabel setTextColor:[UIColor whiteColor]]; 

    // Another way to set the background color 
    // Note: does not preserve gradient effect of original header 
    // header.contentView.backgroundColor = [UIColor blackColor]; 
} 

Tomado de mi post aquí: https://happyteamlabs.com/blog/ios-how-to-customize-table-view-header-and-footer-colors/

+2

buen trabajo, por cierto este método todavía funciona en iOS 7 tan bien hecho. –

+0

Este código aparece y "simplemente funciona" con iOS 7. Agradable. – russes

+0

De lejos, la respuesta superior. –

2

Me tomó unos minutos para "traducir" esta a Swift, pero aquí hay un equivalente de trabajo en Swift 1.2 (iOS 8) Asegúrese e implemente UITableViewDelegate en su clase:

// MARK: - VIEW METHODS 
override func viewDidLoad() { 
    tableView.delegate = self 
} 

// MARK: - TABLEVIEW DELEGATE METHODS 
override func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) { 
    let header = view as! UITableViewHeaderFooterView 
    header.textLabel.textColor = UIColor.whiteColor() 
} 
Cuestiones relacionadas