Existe-t-il un moyen de supprimer la ligne de séparation d'un UITableView?


225

Je cherche un moyen de supprimer complètement la ligne de séparation dans un UITableView en mode simple. Cela se fait automatiquement en groupe, mais cela modifie également les dimensions du tableau d'une manière difficile à mesurer. J'ai défini la couleur de la ligne de séparation sur colorClear. Mais cela ne résout pas complètement le problème.

Comme j'essaie de dessiner une vue d'arrière-plan personnalisée dans les cellules et que je veux que les cellules soient transparentes, la ligne d'un pixel qui reste entre moi me pose des problèmes. Existe-t-il une solution de contournement plus élégante que d'utiliser une vue groupée puis de l'étirer?


Changer separatorInsetcomme dans cette réponse stackoverflow.com/a/8561820/1418457
onmyway133

Réponses:


454

Vous pouvez le faire avec la UITableViewpropriété separatorStyle. Assurez-vous que la propriété est définie sur UITableViewCellSeparatorStyleNoneet que vous êtes défini.

Objectif c

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

Dans Swift (avant 3)

tableView.separatorStyle = .None

Dans Swift 3/4/5

tableView.separatorStyle = .none

39
Vous pouvez également le faire dans IB, soit dit en passant (séparateur => aucun).
Bart Jacobs

1
Cela semble seulement supprimer les lignes de séparation dans une section de table. Existe-t-il un moyen de supprimer les lignes de séparation entre les sections?
devios1

4
La ligne entre les sections n'est pas vraiment une ligne, mais la vue de la section. Vous pouvez changer la vue en l'implémentant à tableView:viewForHeaderInSection:partir du UITableViewDelegateprotocole.
Bart Jacobs

64

Vous pouvez également le faire dans l'éditeur de storyboard / xib. Définissez simplement Seperator sur aucun.

entrez la description de l'image ici


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

18

J'avais toujours une ligne gris foncé après avoir essayé les autres réponses. J'ai dû ajouter les deux lignes suivantes pour que tout soit "invisible" en termes de lignes entre les cellules.

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

Cela a fonctionné pour moi. Dans mon cas, la ligne de séparation n'apparaissait pas réellement entre les cellules, mais en fait quelque part au milieu d'entre elles.
Elliot

10

Dans l'interface Builder, définissez le séparateur de vue de table "Aucun"

entrez la description de l'image ici et les lignes de séparation qui sont affichées après la dernière cellule peuvent être supprimées en suivant l'approche. La meilleure approche consiste à attribuer une vue vide à tableView FooterView dans viewDidLoad

self.tableView.tableFooterView = UIView ()



5

Il y a un bug sur iOS 9 beta 4: la ligne de séparation apparaît entre les UITableViewCells même si vous définissez separatorStylesur UITableViewCellSeparatorStyleNonedepuis le storyboard. Pour contourner cela, vous devez le définir à partir du code, car à partir de maintenant, il y a un bogue dans le storyboard. J'espère qu'ils le corrigeront dans la future version bêta.

Voici le code pour le définir:

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];

2

Dans la méthode ViewDidLoad, vous devez écrire cette ligne.

tableViews.separatorStyle = UITableViewCellSeparatorStyleNone;

Cela fonctionne Code.


1

Dans votre viewDidLoad:

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)])
{
    [self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.