Existe uma maneira de remover a linha separadora de um UITableView?


225

Estou procurando uma maneira de remover completamente a linha separadora em um UITableView quando estiver no modo simples. Isso é feito automaticamente em agrupado, mas isso também altera as dimensões da tabela de uma maneira que é difícil de medir. Eu configurei a cor da linha do separador para colorClear. Mas isso não resolve completamente o problema.

Como estou tentando desenhar uma exibição de plano de fundo personalizada nas células e quero que as células sejam contínuas, a linha de um pixel que permanece no meio está me causando problemas. Existe uma solução alternativa mais elegante do que usar uma exibição agrupada e depois esticá-la?


Altere separatorInsetcomo nesta resposta stackoverflow.com/a/8561820/1418457
onmyway133

Respostas:


454

Você pode fazer isso com a UITableViewpropriedade separatorStyle. Certifique-se de que a propriedade esteja definida como UITableViewCellSeparatorStyleNonee você esteja definido.

Objetivo-C

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

Em Swift (anterior a 3)

tableView.separatorStyle = .None

Em Swift 3/4/5

tableView.separatorStyle = .none

39
Você também pode fazer isso no IB, a propósito (separador => nenhum).
Bart Jacobs

1
Isso parece remover apenas as linhas separadoras dentro de uma seção da tabela. Existe uma maneira de remover as linhas separadoras entre as seções?
devios1

4
A linha entre as seções não é realmente uma linha, mas a visualização da seção. Você pode alterar a exibição implementando a tableView:viewForHeaderInSection:partir do UITableViewDelegateprotocolo.
27613 Bart Jacobs

64

Você também pode fazer isso no editor de storyboard / xib. Basta definir o Seperator como nenhum.

insira a descrição da imagem aqui


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

18

Eu ainda tinha uma linha cinza escura depois de tentar as outras respostas. Eu tive que adicionar as duas linhas a seguir para tornar tudo "invisível" em termos de linhas de linha entre células.

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

Isso funcionou para mim. No meu caso, a linha separadora não estava aparecendo entre as células, mas em algum lugar no meio delas.
Elliot

10

Na interface, o Construtor definiu o separador de exibição de tabela "Nenhum"

insira a descrição da imagem aqui e as linhas separadoras que são mostradas após a última célula podem ser removidas seguindo a abordagem. A melhor abordagem é atribuir a exibição vazia a tableView FooterView em viewDidLoad

self.tableView.tableFooterView = UIView ()



5

Há um bug no iOS 9 beta 4: a linha separadora aparece entre UITableViewCells mesmo que você defina separatorStylecomoUITableViewCellSeparatorStyleNone partir do storyboard. Para contornar isso, você precisa configurá-lo a partir do código, porque a partir de agora há um erro no storyboard. Espero que eles consertem isso no futuro beta.

Aqui está o código para configurá-lo:

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];

2

No método ViewDidLoad, você precisa escrever esta linha.

tableViews.separatorStyle = UITableViewCellSeparatorStyleNone;

Este está funcionando código.


1

No seu viewDidLoad:

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)])
{
    [self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.