¿Hay alguna manera de eliminar la línea de separación de un UITableView?

225

Estoy buscando una manera de eliminar por completo la línea de separación en UITableView cuando está en modo plano. Esto se hace automáticamente en grupo, pero esto también cambia las dimensiones de la tabla de una manera que es difícil de medir. He configurado el color de la línea de separación en colorClear. Pero esto no resuelve completamente el problema.

Como estoy tratando de dibujar una vista de fondo personalizada en las celdas, y quiero que las celdas sean transparentes, la línea de un píxel que permanece en el medio me está causando problemas. ¿Existe una solución más elegante que usar una vista agrupada y luego estirarla?

Difícil
fuente
Cambiar separatorInsetcomo en esta respuesta stackoverflow.com/a/8561820/1418457
onmyway133

Respuestas:

454

Puedes hacer esto con la UITableViewpropiedad separatorStyle. Asegúrese de que la propiedad esté configurada UITableViewCellSeparatorStyleNoney que esté configurado.

C objetivo

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

En Swift (antes de 3)

tableView.separatorStyle = .None

En Swift 3/4/5

tableView.separatorStyle = .none
Bart Jacobs
fuente
39
También puede hacer esto en IB, por cierto (separador => ninguno).
Bart Jacobs
1
Esto solo parece eliminar las líneas de separación dentro de una sección de tabla. ¿Hay alguna forma de eliminar las líneas de separación entre secciones?
devios1
44
La línea entre secciones no es realmente una línea, sino la vista de la sección. Puede cambiar la vista implementando tableView:viewForHeaderInSection:desde el UITableViewDelegateprotocolo.
Bart Jacobs
64

También puede hacer esto en el editor de guiones gráficos / xib. Simplemente configure Seperator en none.

ingrese la descripción de la imagen aquí

Kevin DiTraglia
fuente
62
- (void)viewDidLoad {
    [super viewDidLoad];
    [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
}
imthi
fuente
18

Todavía tenía una línea gris oscura después de intentar las otras respuestas. Tuve que agregar las siguientes dos líneas para hacer que todo fuera "invisible" en términos de líneas de fila entre celdas.

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
self.tableView.separatorColor = [UIColor clearColor];
Sig Myers
fuente
Esto funcionó para mí. En mi caso, la línea de separación no aparecía entre las celdas, sino en algún lugar en el medio de ellas.
Elliot
10

En el generador de interfaces, separador de vista de tabla "Ninguno"

ingrese la descripción de la imagen aquí y las líneas de separación que se muestran después de la última celda se pueden eliminar siguiendo el enfoque. El mejor enfoque es asignar una vista vacía a tableView FooterView en viewDidLoad

self.tableView.tableFooterView = UIView ()

Mohsin Qureshi
fuente
9

En Swift:

tableView.separatorStyle = .None
Mohsen
fuente
5

No hay error una beta de iOS 9 4: los aparezca línea de separación entre UITableViewCells aunque ajuste separatorStyleaUITableViewCellSeparatorStyleNone de un guión. Para evitar esto, debe configurarlo desde el código, porque a partir de ahora hay un error del guión gráfico. Espero que lo arreglen en la futura beta.

Aquí está el código para configurarlo:

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
Siddhesh Mahadeshwar
fuente
2

En el Método ViewDidLoad, debe escribir esta línea.

tableViews.separatorStyle = UITableViewCellSeparatorStyleNone;

Este es el código de trabajo.

Ashu
fuente
1

En su viewDidLoad:

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)])
{
    [self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
Aatish Javiya
fuente