SDK iPhone: Comment ajouter une image à sous-vue UITableViewController et encore voir les cellules?

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

Question

J'ajoute une image à un sous-vue UITableViewController avec une table groupée. Une fois que j'ajoute la sous-vue de l'image que je peux voir les en-têtes de table au-dessus de l'image, mais les cellules sont tirées derrière l'image.

Y at-il autre chose que je dois faire pour faire en sorte que les cellules du tableau apparaissent au-dessus de l'image d'arrière-plan? Voici le code que je utilise dans le viewDidLoad du 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];

Je me rends compte que comme une alternative que je pourrais simplement créer une vue composite et déposez-le tableview sur lui plutôt que de ce que je suis en train de faire ici. S'il n'y a pas d'autre solution que je le ferai, mais je préfère utiliser l'approche que je suis en train si possible.

Était-ce utile?

La solution 2

Il semble que le UITableView va réorganiser souvent le zorder de vues lors de l'actualisation. Donc, vous devez gérer manuellement la réinitialisation du zorder sur les événements de table tels que l'insertion / suppression / lignes de mise à jour.

Autres conseils

Il est une vue de table groupée. A partir de la documentation de la pomme:

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

Cela signifie qu'il ya une vue de l'image par défaut étant inséré derrière votre table. Vous voulez remplacer par votre propre point de vue, comme ceci:

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;

Il remplace l'autre backgroundView avec votre propre. Dans le cas contraire lorsque la vue de la table est à nouveau posée, cette autre image de fond recouvrira le vôtre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top