iphone sdk 3.0 - pantalla - Cambiar el color de fondo de la etiqueta de texto UITableViewCell para borrar
escala de grises iphone (7)
En mi aplicación tengo una vista de tabla con customViewCells. Subclasé la clase UITableViewCell y agregué una imagen que cargará async y para el texto utilizo cell.textLabel.text = @"someThext"
.
Para las celdas, el color de fondo se establece alternativamente en [UIColor darkGrayColor]
y [UIColor whiteColor]
.
Cuando ejecuto la aplicación en el simulador y en el teléfono, la textLabel
de textLabel
de la celda tiene el fondo blanco. Quiero configurarlo para que sea claro, porque quiero que el color de fondo de la celda esté lleno, no una tira, luego blanco y otra tira.
En el método init de mi celda personalizada agregué, esperando que el blanco se vuelva rojo, pero no tiene ningún efecto:
[self.textLabel setBackgroundColor:[UIColor redColor]];
Lo intenté también:
self.textLabel.backgroundColor = [UIColor redColor];
Pero esto tampoco funcionó ... si agrego un UILabel como subvista, se puede configurar el color de fondo de la etiqueta, pero no quiero hacer eso porque cuando giro el teléfono quiero que mis etiquetas sean automáticas. agrandar.
¿Alguna idea de por qué configurar el color de fondo de cell.textLabel
no funciona?
Gracias
El problema es que UIKit establece el color de fondo de la celda en el método -setSelected. Tenía el método pero no tenía self.textLabel.backgroundColor = [UIColor clearColor]; self.detailTextLabel.backgroundColor = [UIColor clearColor]; en ella, así que los agregué y se solucionó el problema mencionado en la imagen.
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
self.textLabel.backgroundColor = [UIColor clearColor];
self.detailTextLabel.backgroundColor = [UIColor clearColor];
}
No lo probé, pero aquí está una suposición ... Para dibujar más rápido, la propiedad opaca de la etiqueta podría establecerse como verdadera de forma predeterminada.
Tratar
cell.titleLabel.opaque = NO;
cell.titleLabel.backgroundColor = [UIColor clearColor];
Si eso tampoco funciona, probablemente me rendiría en este momento y crearía mi propio UILabel para la célula.
Para establecer un color de fondo claro puede usar clearColor:
[[cell textLabel] setBackgroundColor:[UIColor clearColor]];
¿Es esto lo que quieres decir?
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 color de fondo propio.
Es bueno que esto sea fijo, pero un poco sorprendente durante las pruebas si desarrollas con base SDK 4.1 y min. implementación 3.1 para iPhone classic y iPad.
Si no desea subclasificar UITableViewCell, simplemente puede agregar esto:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
[[cell textLabel] setBackgroundColor:[UIColor clearColor]];
[[cell detailTextLabel] setBackgroundColor:[UIColor clearColor]];
}
para establecer el color de la etiqueta de texto, debe hacer esto: t.textColor = [UIColor colorYouWantRGB];
vea esta publicación: ¿Cómo configuro la propiedad UITableViewCellSelectionStyle en algún color personalizado?
en su caso solo use una UIView con fondo de color blanco