iPhone SDK: Cómo agregar subvista imagen para UITableViewController sin dejar de ver las células?

StackOverflow https://stackoverflow.com/questions/2449945

Pregunta

Estoy añadiendo una imagen a un subvista UITableViewController con una tabla agrupada. Una vez que agrego la subvista imagen puedo ver los encabezados de la tabla en la parte superior de la imagen, pero las células se están elaborando detrás de la imagen.

¿Hay algo más que tenga que hacer para asegurar que las celdas de la tabla aparecen en la parte superior de la imagen de fondo? Aquí está el código que estoy usando en viewDidLoad del UITableViewControlle:

CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 959.0f); 
UIImageView *backImageView = [[UIImageView alloc] initWithFrame:myImageRect]; 
[backImageView setImage:[UIImage imageNamed:@"somebackground.png"]]; 
[self.view addSubview:backImageView];
[self.view sendSubviewToBack:backImageView];
[backImageView release];

Me doy cuenta de que, como alternativa yo podría simplemente crear una vista compuesta y soltar el tableview encima de él en lugar de lo que estoy tratando de hacer aquí. Si no hay ninguna otra solución que lo hará, pero preferiría usar el enfoque que estoy tratando de ser posible.

¿Fue útil?

Solución 2

Parece que el UITableView menudo reordenará el zorder de puntos de vista cuando refrescante. Por lo tanto, es necesario gestionar manualmente restablecer el zorder en cualquier evento de mesa como insertar / borrar / actualizar filas.

Otros consejos

Es una vista de tabla agrupada. A partir de los documentos de manzana:

The grouped style of table view provides a default background color and a default background view for all cells.

Esto significa que hay una vista de imagen predeterminada que se inserta detrás de la mesa. Desea reemplazar que con su propio punto de vista, así:

CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 959.0f); 
UIImageView *backImageView = [[UIImageView alloc] initWithFrame:myImageRect]; 
[backImageView setImage:[UIImage imageNamed:@"somebackground.png"]]; 
self.tableView.backgroundView = backImageView;

Esto sustituye a la otra backgroundView con su propio. De lo contrario, cuando la vista de tabla se presenta de nuevo, esa otra imagen de fondo se superpondrá a la suya.

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