iphone - travel - hashtags instagram




Impossibile impostare il colore di sfondo di UITableViewCell in IB (2)

Ho creato un gruppo di celle che riutilizza in una vista tabella. Tutte queste celle hanno solo UILabel differenti all'interno di esse e alcuni UIImageView (niente copre la cella completa).

L'impostazione del colore di sfondo in IB non ha alcun effetto (sempre bianco o trasparente, non è possibile dire quale di essi). Ma se premo Comando-R (simula interfaccia) la cella ha il colore di sfondo corretto nel simulatore.

Ho provato a impostarlo in tableView:cellForRowAtIndexPath: ma non funziona come penserei.

Questo fa il trucco:

cell.contentView.backgroundColor = [UIColor redColor];

ma questi non hanno alcun effetto (anche se imposto cell.contentView.backgroundColor per clearColor ):

cell.backgroundView.backgroundColor = [UIColor redColor];

cell.backgroundColor = [UIColor redColor];

Ho impostato tutto il layout / font / materiale di sfondo in IB. Qualche idea sul perché questo non funziona in questo caso?

Perché devo modificare il backgroundColor contentView e non quello di backgroundView ?

Sembra essere un problema comune. Qualcuno potrebbe per favore indicarmi la direzione giusta per (finalmente) capire come vengono gestiti i colori di sfondo all'interno di una cella di visualizzazione tabella.


C'è una soluzione più semplice: quando crei un UITableViewCell in Interface Builder, trascina e rilascia un UIView aggiuntivo in modo che copra l'intero UITableViewCell che stai creando all'interno di IB. Posiziona i tuoi elementi di interfaccia utente aggiuntivi sopra questo UIView aggiuntivo. Puoi impostare questa UIView a qualsiasi background tu voglia.

Ci sono alcune risposte su che suggeriscono di cambiare il colore di sfondo del tuo UITableViewCell usando una linea di codice come questa:

cell.contentView.backgroundColor = [UIColor redColor];

Se aggiungi un'ombra esterna alla tua cella regolando leggermente la dimensione della cornice di contentView , potresti notare che questa linea cambierà sia il colore di sfondo della tua cella che il colore della tua ombra esterna.








interface-builder