iPhone SDK: Come aggiungere un'immagine visualizzazione secondaria per UITableViewController e ancora vedere le celle?

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

Domanda

io sono l'aggiunta di una visualizzazione secondaria un'immagine a un UITableViewController con un tavolo raggruppati. Una volta aggiungo la visualizzazione secondaria immagine posso vedere le intestazioni di tabella sulla parte superiore dell'immagine, ma le cellule sono in fase di elaborazione dietro l'immagine.

C'è qualcosa che devo fare per garantire che le celle della tabella appaiono in cima l'immagine di sfondo? Ecco il codice che sto utilizzando in 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];

Mi rendo conto che in alternativa si potrebbe semplicemente creare una vista composita e rilasciare il Tableview su di esso, piuttosto che quello che sto cercando di fare qui. Se non c'è altra soluzione lo farò, ma preferirei usare il metodo che sto cercando, se possibile.

È stato utile?

Soluzione 2

Sembra che l'UITableView spesso riorganizzare l'ZOrder di punti di vista, quando rinfrescante. Quindi, è necessario gestire manualmente il ripristino del ZOrder su tutti gli eventi da tavolo come l'inserimento / cancellazione / aggiornamento dei file.

Altri suggerimenti

E 'una vista tabella raggruppata. Dalla documentazione Apple:

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

Questo significa che c'è una vista di immagine predefinito essere inserito dietro il tavolo. Si vuole sostituire quella con il proprio punto di vista, in questo modo:

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;

Questo sostituisce l'altro backgroundView con il vostro. In caso contrario, quando la visualizzazione della tabella è disposto ancora una volta, l'altra immagine di sfondo sarà sovrapporre la tua.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top