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?

Complicado
fonte
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
Bart Jacobs
fonte
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

Kevin DiTraglia
fonte
62
- (void)viewDidLoad {
    [super viewDidLoad];
    [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
}
imthi
fonte
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];
Sig Myers
fonte
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 ()

Mohsin Qureshi
fonte
9

Em Swift:

tableView.separatorStyle = .None
Mohsen
fonte
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];
Siddhesh Mahadeshwar
fonte
2

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

tableViews.separatorStyle = UITableViewCellSeparatorStyleNone;

Este está funcionando código.

Ashu
fonte
1

No seu viewDidLoad:

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