2012-01-01 8 views
6

Estoy tratando de cambiar el color de fondo de la vista que aparece cuando desliza una fila UITableViewCell, el color de fondo detrás del botón 'Eliminar'.Deslizar para eliminar en UITableViewCell tiene fondo blanco, necesita borrar

Intenté cambiar el cell.editingAccessoryView pero eso no hizo nada.

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

¿Alguna idea?

+0

¿Alguna vez encontró una solución a esto? Estoy teniendo el mismo problema :) –

Respuesta

7

Ya casi está allí. La clase UITableViewCell tiene una propiedad backgroundView, que es nil de forma predeterminada. Simplemente cree un nuevo UIView como lo ha hecho en su pregunta, luego asigne eso a la propiedad backgroundView de su celular.

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

Creo que depende de cómo esté agregando contenido a su celular.

Cuando agregué contenido a la celda directamente usando [cell addSubView] o [cell.contentView addSubView] estaba teniendo el mismo problema.

Mi solución a esto fue:

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] 

Y no es necesario alterar la propiedad backgroundView más. ¡He intentado esto y funciona perfectamente!

7

Estoy respondiendo esto porque me tomó un tiempo encontrar una respuesta y esta es la primera entrada que aparece en una búsqueda. Al usar el método willDisplayCell, puede acceder al color de fondo de las celdas. Tenga en cuenta que [UIColor clearColor]; devolverá el color blanco así que ajuste su código en consecuencia.

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

    cell.backgroundColor = [UIColor blackColor]; 

} 
0

Si bien estas respuestas son correctas, creo que para la mayoría de los casos es más fácil simplemente establecer el color de fondo de la celda en el generador de interfaz. Con eso me refiero a la propiedad real de color de fondo de la celda, no a la vista de contenido. No hay razón para hacerlo dinámicamente si siempre va a ser el color de la vista de contenido.

Cuestiones relacionadas