Cambiar el color de background de UITableViewCell al reorderar en el modo de edición

Estoy trabajando en una aplicación que contiene una UITableView. Lo único que debe ser posible para los usuarios es reorderar el contenido de UITableView. Cuando está en el modo de edición, el color de background de las celdas de la tabla se vuelve transparente. ¿Hay alguna forma de mantener el color de background original de la celda de tabla cuando se reordera?

Solución:

Después de algunas búsquedas adicionales encontré la solución (simple). Al agregar cell.backgroundView.backgroundcolor al método willDisplayCell, se solucionó el problema.

Existen varios escenarios cuando el marco de la interfaz de usuario de iOS hará que su celda sea transparente. Uno de ellos es el estado resaltado / seleccionado y otro es el caso de reorderamiento.

Lo importante es entender cómo lo hace el sistema. El sistema oculta el background de la celda ( cell.backgroundView o cell.selectedBackgroundView ) y, para cada vista de la celda, establece backgroundColor en color transparente. Por lo tanto, no es posible usar backgroundColor para mantener la celda opaca.

La solución más simple es agregar una UIView simple con drawRect: eso llenará la celda con un color.

 @interface MyColonetworkingView : UIView @property (nonatomic, strong, readwrite) UIColor *color; @end @implementation MyColonetworkingView - (void)setColor:(UIColor *)color { _color = color; [self setNeedsDisplay]; } - (void)drawRect:(CGRect)rect { [self.color set]; CGContextSetShouldAntialias(UIGraphicsGetCurrentContext(), true); CGContextFillRect(UIGraphicsGetCurrentContext(), self.bounds); } @end 

contentView a su celda (probablemente no a contentView sino directamente a la celda) y configure su marco para que coincida con los límites de la celda.

Digamos que el color de su celda es networkingcolor

  [cell setBackgroundColor:[UIColor networkingColor]]; 

luego, establezca el background de la tabla a la misma.

  tableView.backgroundColor = [UIColor networkingColor];