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?

Rusé
la source
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
Bart Jacobs
la source
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

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

Mohsin Qureshi
la source
9

Dans Swift:

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

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

tableViews.separatorStyle = UITableViewCellSeparatorStyleNone;

Cela fonctionne Code.

Ashu
la source
1

Dans votre viewDidLoad:

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