Pregunta

En mi aplicación tengo una vista de tabla con customViewCells. Me subclases de la clase UITableViewCell y añadí una imagen que se carga asíncrona y para el texto que utilizo cell.textLabel.text = @"someThext".

Para las células el color de fondo se establece alternativamente a [UIColor darkGrayColor] y [UIColor whiteColor].

Al ejecutar la aplicación en el simulador y en el teléfono de la textLabel de la célula tiene el fondo blanco. Quiero establecer que quede claro, porque quiero que el color de fondo de la celda a estar lleno, no una franja blanca a continuación, a continuación, otra tira.

En el método init de mi celda personalizado I añadido, con la esperanza de que el blanco se convertirá en rojo, pero no tiene ningún efecto:

[self.textLabel setBackgroundColor:[UIColor redColor]];

He intentado también:

self.textLabel.backgroundColor = [UIColor redColor];

Pero esto tampoco funciona ... si añado un UILabel como subvista, el color de fondo de la etiqueta se puede ajustar, pero no quiero hacer eso porque cuando gira el teléfono Quiero que mi etiquetas para agrandar automática.

Cualquier idea por qué establecer el color de fondo de cell.textLabel no funciona?

Gracias

¿Fue útil?

Solución 2

El problema es que UIKit establece el color de fondo de la celda en el método -setSelected. Tuve el método, pero no tienen self.textLabel.backgroundColor = [UIColor clearColor]; self.detailTextLabel.backgroundColor = [UIColor clearColor]; en ella por lo que añade ellos y el problema mencionado en la imagen se fijó.

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];
    self.textLabel.backgroundColor = [UIColor clearColor];
    self.detailTextLabel.backgroundColor = [UIColor clearColor];
}

Otros consejos

Si no desea subclase UITableViewCell sólo se puede añadir lo siguiente:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
     [[cell textLabel] setBackgroundColor:[UIColor clearColor]];
     [[cell detailTextLabel] setBackgroundColor:[UIColor clearColor]];
}

Parece que Apple cambió algo aquí. Haciendo exactamente esto en iOS4 funciona:

self.textLabel.backgroundColor = [UIColor xxxColor];
self.detailTextLabel.backgroundColor = [UIColor xxxColor];

Al menos hasta el punto de que el fondo de la etiqueta es transparente o toma el color de fondo. Todavía no es posible establecer un propio color de fondo.

Niza que este es fijo, sino un poco sorprendente durante las pruebas si se desarrollan con SDK 4.1 y la base min. 3.1 para el despliegue clásico iPhone y el iPad.

Para establecer un color de fondo claro se puede utilizar clearColor:

    [[cell textLabel] setBackgroundColor:[UIColor clearColor]];

Es esto lo que quiere decir?

ver este post: ¿Cómo puedo configurar UITableViewCellSelectionStyle propiedad a un poco de color a medida?

en su caso, sólo tiene que utilizar un UIView con el blanco color de fondo

Yo no lo probamos, pero esto es una conjetura ... Para dibujar más rápido la propiedad opaca de la etiqueta puede ser definido como true de forma predeterminada.

Trate

cell.titleLabel.opaque = NO;
cell.titleLabel.backgroundColor = [UIColor clearColor];

Si eso no funciona, ya sea que probablemente se dan por vencidos en este punto y crear mi propia UILabel para la célula.

para ajustar el color de la TextLabel usted debe hacer esto: t.textColor = [UIColor colorYouWantRGB];

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top