2009-05-29 19 views
201

Estoy buscando una manera de eliminar por completo la línea de separación en una UITableView cuando esté en modo simple. Esto se hace automáticamente en grupos, pero esto también cambia las dimensiones de la tabla de una manera que es difícil de medir. Establecí el color de la línea del separador en colorClear. Pero esto no resuelve completamente el problema.¿Hay alguna manera de eliminar la línea de separación de una UITableView?

Como estoy tratando de dibujar una vista de fondo personalizado en las células, y quiero que las células sean sin fisuras, la línea de un píxel que queda en el medio me está causando problemas. ¿Hay una solución más elegante que usar una vista agrupada y luego estirarla?

+0

Cambie 'separatorInset' como en esta respuesta http://stackoverflow.com/a/8561820/1418457 – onmyway133

Respuesta

422

Usted puede hacer esto con la propiedad separatorStyleUITableView. Asegúrese de que la propiedad esté configurada en UITableViewCellSeparatorStyleNone y esté configurado.

Objective-C

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 

En Swift (antes de 3)

tableView.separatorStyle = .None 

En Swift 3

tableView.separatorStyle = .none 
+32

También puede hacer esto en IB, por cierto (separator => none). –

+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

+4

La línea entre las secciones no es realmente una línea, sino la vista de la sección. Puede cambiar la vista implementando 'tableView: viewForHeaderInSection:' del protocolo 'UITableViewDelegate'. –

62
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; 
} 
14

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

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 
self.tableView.separatorColor = [UIColor clearColor]; 
+0

Esto funcionó para mí. En mi caso, la línea de separación no estaba apareciendo realmente entre las células, sino en algún lugar en el medio de ellas. – Elliot

61

Puede hacerlo en el editor de guiones gráficos/xib también. Simplemente configure Seperator en ninguno.

enter image description here

9

En Swift:

tableView.separatorStyle = .None 
1

En su viewDidLoad:

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

En el Método viewDidLoad, usted tiene que escribir esta línea.

tableViews.separatorStyle = UITableViewCellSeparatorStyleNone; 

Esto está funcionando Código.

5

Existe un error en iOS 9 beta 4: la línea de separación aparece entre UITableViewCell s incluso si establece separatorStyle en UITableViewCellSeparatorStyleNone en el guión gráfico. 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 versión beta.

Aquí está el código para establecer que:

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; 
+0

Sí, supongo que será un trabajo manual para nosotros :( –

5

En la interfaz fabricante del grupo mesa con vista al separador de "Ninguno"

enter image description here y esas líneas de separación que se muestran después de la última celda se puede eliminar siguiendo enfoque. El mejor enfoque es asignar vista vacía a tableView FooterView en viewDidLoad

self.tableView.tableFooterView = UIView()

Cuestiones relacionadas