2012-06-15 21 views
17

Tengo algunos problemas para tratar de cambiar el fondo de una UITableView con grupos.Cambiar el fondo de un UITableView agrupado

_tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"tableViewBg.png"]]; 

Esto generalmente funciona en todos los demás UITableView, pero no en el de los grupos, ¿hay algo más que deba hacer? En IB tengo el color de fondo establecido en un color claro, pero eso no hace mucho.

Respuesta

48

Usted, además, que desactivar el fondo de la vista de _tableView:

[_tableView setBackgroundView:nil]; 
_tableView.backgroundColor = [UIColor redColor]; 

hay necesidad de añadir nueva vista a backgroundView. Esto me funciona en iOS6.

+0

+1 Respuesta buena y simple .. –

+0

tiempos ans grandes ahorrados. – Ryuk

+0

Genius. ¡Quién sabía que los encabezados de las secciones agrupadas estaban claros! Independientemente del iOS en el que estemos ahora en 2017, no necesita borrar el fondo de tableView. Simplemente lo puse directamente como blanco y eso es todo lo que ella escribió. Gracias por ayudarme a resolver esto! –

3

Lo que suelo hacer con UITableViews agrupadas es establecer el color de fondo para borrar, y establecer esa imagen de patrón en la vista de los padres.

self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"tableBG.png"]]; 
self.tableView.backgroundColor = [UIColor clearColor]; 
+1

Yo probé eso también, pero sin ningún éxito: self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @ "tableViewBg.png"]]; _tableView.backgroundColor = [UIColor clearColor]; –

+0

Si no recuerdo mal, la UITableView tiene un fondo de vista de desplazamiento ... Prueba esto ... añadido a mi respuesta. –

+0

Hmmm, eso no hace mucho también, no entiendo por qué no funciona aquí, en cualquier otra mesa que use el mismo código funciona bien –

5

¿por qué no configura tableView.backgroundView? puede asignar una vista de imagen con la imagen especificada y pasarla a la vista de fondo en lugar de establecer el color de fondo.

+0

¿No es el tableView.backgroundColor allí para cambiar el color de fondo? El uso de tableView.backgroundView parece una solución larga –

+8

Realmente su respuesta me ayudó, resulta por qué agrupa un UITableView, se establece el backgroundView, utilizando self.tableView.backgroundView = nil; lo quitas –

0

Solo quiero agregar a la respuesta de Nirav, también se puede hacer usando el proxy de apariencia iOS 5.

[[UITableView appearance] setBackgroundView:nil]; 
[[UITableView appearance] setBackgroundColor:[UIColor lightGreyColor]]; 

La ventaja es que es aplica de forma general, para que pueda agrupar todas sus personalizaciones de interfaz de usuario en un solo lugar. Sin embargo, se aplicará a todas las vistas de mesa (no solo al estilo agrupado).

0
tableView.backgroundView = nil; 
tableView.backgroundColor = [UIColor colorWithPatternImage: xxx]; 
// tableView.backgroundColor = [UIColor redColor]; // is ok 

si establece establece el backgroundColor ya que, cuando se desplaza el tableView, la vista backgroundColor se desplazará también. entonces, usted puede: tableView.backgroundView = nil; self.view.backgroundColor = ...

1

La respuesta seleccionada funciona pero borra el fondo tanto de tableHeaderView como de la vista del encabezado de la sección de la tabla. Si lo que desea es cabecera de la tabla a ser de un color determinado decir blanco y sección de encabezado todavía por defecto gris que hacer lo siguiente -

tableView.tableHeaderView.inputView.backgroundColor = [UIColor whiteColor]; 
Cuestiones relacionadas