uitableviewcontroller example iphone cocoa-touch uitableview

iphone - example - Eliminar bordes de celda de una sección de UITableView de estilo agrupado



uitableview swift 4 (15)

Tengo un UITableViewController inicializado con el estilo agrupado y que tiene varias secciones. Para una de estas secciones, me gustaría que sus células constituyentes sean completamente transparentes y no tengan borde. Planeo asignar una vista personalizada para cada fila en esta sección, pero tener esa vista personalizada rodeada por la celda de la tabla agrupada se ve mal :(

Lo siguiente hace que el color de fondo de una celda sea negro en lugar de transparente ... Y todavía no sé cómo deshacerme del borde.

cell.backgroundColor = [UIColor clearColor];

¿Alguna sugerencia? ¡Gracias!


A partir de iOS 8, configurar el atributo separador en ninguno funciona también.


El siguiente truco funciona en iOS 7, por ahora. :)

Subclass UITableViewCell , y use esta celda para la sección que no debe tener separadores.
Anule el método addSubview en su subclase de celda:

-(void)addSubview:(UIView *)view { // The separator has a height of 0.5pt on a retina display and 1pt on non-retina. // Prevent subviews with this height from being added. if (CGRectGetHeight(view.frame)*[UIScreen mainScreen].scale == 1) { return; } [super addSubview:view]; }


Establecer una vista de contenido también elimina el borde. Establezca su vista personalizada en cell.contentView.


Establezca la vista de fondo de la celda en cero. Para una tabla agrupada, la imagen de la celda es parte de esa vista.


Este código funcionó para mí :)

[self.tableView setSeparatorColor:[UIColor clearColor]]; [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];


Esto es lo que funcionó con tener una tabla de estilos agrupados

[tableView setSeparatorColor: [UIColor clearColor]];


Intenta usar tableView.separatorColor = [UIColor clearColor];

Y no use tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

Probé con ambos, si el estilo no es ninguno, hacer que los bordes de la sección sean invisibles no funciona, sino que simplemente cambio su color, y el borde de la sección parecerá que no.

iOS parece estar diferenciando hacer un objeto ninguno y hacer un objeto transparente


La forma más sencilla de eliminar los bordes de la celda de una sección de UITableView de estilo agrupado:

[tableViewOutlet setBackgroundView:nil];

en el método viewDidLoad.


Si tiene una UITableCellView personalizada, puede agregar el siguiente método a su vista para eliminar la vista de fondo.

- (void)setBackgroundView:(UIView *)backgroundView { // We don''t want background views for this cell. [super setBackgroundView:nil]; }


Solo pensé en convertir mi comentario en @Intentss en una respuesta, porque tal vez sea útil para aquellos, usando su solución.

Usando iOS6.1 con un UITabelView agrupado, usando ARC:

[tableView setSeparatorColor: [UIColor clearColor]];

No funciona

cell.backgroundView = [[UIView alloc] initWithFrame: CGRectZero];

Funciona


Tienes que establecer

tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

para eliminar el borde de las celdas


NOTA: Esto no parece funcionar en iOS7 y superior. Para iOS7 prueba this respuesta.

Para iOS6 y abajo, para eliminar el fondo agrupado de una celda en una celda de vista de tabla agrupada:

Esto no funcionó

cell.backgroundView = nil; // Did Not Work

Esto hizo

cell.backgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];

Si se ha mudado a ARC (he escuchado que esto funciona, pero no lo he probado)

cell.backgroundView = [UIView new];


UIView *backView = [[UIView alloc] initWithFrame:CGRectZero]; backView.backgroundColor = [UIColor clearColor]; cell.backgroundView = backView; cell.backgroundColor = [UIColor clearColor]; [cell.contentView addSubview:imageView];


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


cell.backgroundView = [UIView new];

¡Funciona de maravilla! ¡Probado! ios 6