2012-09-13 16 views

Respuesta

5
self.view.backgroundColor = TTSTYLEVAR(mainPageBackground); 
self.tableView.separatorColor = TTSTYLEVAR(mainPageBackground); 
self.tableView.backgroundView = nil; 

arreglaron para mí. Sin embargo, deberá tener cuidado con los otros impactos que pueda tener.

+0

¿Cómo afectará esto a iOS 5 e iOS 4? – Anand

+0

no he visto ninguno, pero si no está seguro siempre puede bloquearlo con algo como: if ([[UIDevice currentDevice] systemVersion] floatValue]> = 6.0) – DavidM

+1

Esto siempre ocurre mientras crea la aplicación por Xcode 4.5. Tengo un proyecto de iOS 5 y este problema también existe. Usando "self.tableView.backgroundView = nil;" arregla el problema –

32
[tableViewInstance setBackgroundView: nil]; 
+0

Sí, esto lo arregló para mí. Mi sintaxis utilizada fue: [self.tableView setBackgroundView: nil]; – Phamer

+0

mejor solución. +1 –

+0

tenga en cuenta que esta solución puede causarle problemas en iOS 5 (si elimina la sentencia backgroundColor) porque iOS seleccionará el fondo predeterminado de tableView. – Farmertjes

3

Me gustaría advertir el ajuste del backgroundView a nil. En mi experiencia, esto provoca un rendimiento de representación pronunciado durante el desplazamiento del usuario en el último XCode 4.5. Aquí fue mi solución a este problema que no afecta el rendimiento de desplazamiento:

- (void) viewWillLayoutSubviews 
{ 
    CGRect rect = [[UIScreen mainScreen] bounds]; 
    CGRect frame = CGRectMake(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height); 

    UIView *backgroundView = [[[UIView alloc] initWithFrame:frame] autorelease]; 
    backgroundView.backgroundColor = [UIColor clearColor]; 
    self.tableView.backgroundView = backgroundView; 
} 
+0

Esto funcionó para mí. Parece una buena forma de evitar cualquier consecuencia no deseada al tener una vista de fondo nula. –

+0

No configuré su backgoundView en viewWillLayoutSubviews, sino que configuré una sola vez en viewDidLoad y usé una máscara de aumento de tamaño. La forma en que implemente el dimensionamiento de su backgroundView podría darle problemas de rendimiento. – Farmertjes

4

Otra solución simple es cambiar el color de fondo de la UITableView en IB. Cambié a "Color blanco" por ejemplo y funcionó de nuevo.

De alguna manera, dejando el color de fondo "predeterminado" hace que iOS 6 no se moleste con ninguna otra configuración de color hecha en el código.

+0

Funcionó como un encanto .. simple y compatible con versiones anteriores, gracias Sebastian! – dchappelle

19

Configuración

[tableView setBackgroundView: nil]; 

me da problemas en iOS 5, de modo que yo uso es:

UIView* bview = [[UIView alloc] init]; 
bview.backgroundColor = [UIColor yellowColor]; 
[tableView setBackgroundView:bview]; 

iOS 5 y 6 compatibles!

+0

¡Gracias, estaba buscando esto! – SpacyRicochet

+0

¡Impresionante, también funcionó para mí! –

+0

si necesita un fondo transparente siempre puede usar color claro donde uso amarillo. – Farmertjes

0

estableciendo el fondo a cero hace el trabajo y sí no tendrá ningún problema con las versiones anteriores.

1

en IOS 6 El método para la vista de tabla agrupada es decir, el backgroundColor ya no se utiliza lo que en lugar utilizar

[tableview setBackgroundView : nil]; 
1

Sé que esto ya ha sido marcado como respondida, pero las siguientes obras, así:

[[UITableView appearance] setBackgroundColor:[UIColor colorWithRed:233.0/255.0 green:233.0/255.0 blue:233.0/255.0 alpha:1.0]]; 

[[UITableView appearance] setBackgroundView:nil]; 

De esta manera no tiene que configurar el para cada vista de tabla en la aplicación. ¡Gracias al autor por la pista original!

Cuestiones relacionadas