2012-01-01 10 views
6

Sto cercando di cambiare il colore di sfondo della vista che appare quando si fa scorrere una riga di UITableViewCell, il colore di sfondo dietro il pulsante 'Elimina'.Scorri per eliminare in UITableViewCell ha uno sfondo bianco, è necessario cancellare

Ho provato a cambiare il cell.editingAccessoryView ma questo non ha fatto nulla.

UIView* myBackgroundView = [[UIView alloc] initWithFrame:CGRectZero]; 
    myBackgroundView.backgroundColor = [UIColor clearColor]; 
    cell.editingAccessoryView = myBackgroundView; 

Qualche idea?

+0

Hai mai trovato una soluzione a questo? Sto avendo lo stesso problema :) –

risposta

7

Sei quasi arrivato. La classe UITableViewCell ha una proprietà backgroundView, che per impostazione predefinita è nil. Basta creare un nuovo UIView come hai fatto nella tua domanda, quindi assegnarlo alla proprietà backgroundView della tua cella.

cell.backgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease]; 
cell.backgroundView.backgroundColor = [UIColor clearColor]; 
1

Penso che dipenda da come si aggiunge contenuto nella cella.

Quando ho aggiunto il contenuto alla cella direttamente utilizzando [cella addSubView] o [cell.contentView addSubView] ho avuto lo stesso problema.

mia soluzione a questo è stato:

Create a view 
Add all your content(labels, images etc;) to this view 
Finally then add the view to your cell using [cell addSubView:tmpView] 

E non c'è bisogno di manomettere la proprietà backgroundView più. Ho provato questo e funziona perfettamente!

7

Rispondo a questo perché mi ci è voluto un po 'per trovare una risposta e questa è la prima voce che compare in una ricerca. Utilizzando il metodo willDisplayCell è possibile accedere al colore di sfondo delle celle. Si noti che [UIColor clearColor]; restituirà il bianco in modo da regolare di conseguenza il codice.

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { 

    cell.backgroundColor = [UIColor blackColor]; 

} 
0

Mentre queste risposte sono giuste sento che per la maggior parte dei casi è più facile solo per impostare il colore di sfondo della cella in Interface Builder. Con questo intendo la proprietà del colore di sfondo reale della cella, non è la vista del contenuto. Non c'è motivo di farlo dinamicamente se sarà sempre il colore che la visualizzazione del contenuto è comunque.

Problemi correlati