web-dev-qa-db-fra.com

Est-il possible de supprimer la ligne de séparation d'un UITableView?

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

Alors que 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 de pixel qui reste entre les deux me pose problème. Existe-t-il une solution de contournement plus élégante que l’utilisation d’une vue groupée puis son étirement?

220
Tricky

Vous pouvez le faire avec la propriété UITableViewseparatorStyle. Assurez-vous que la propriété est définie sur UITableViewCellSeparatorStyleNone et 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
452
Bart Jacobs

Vous pouvez également le faire dans l'éditeur de storyboard/xib. Il suffit de définir aucun séparateur.

enter image description here

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

J'avais encore une ligne gris foncé après avoir tenté 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];
18
Sig Myers

En rapide:

tableView.separatorStyle = .None
9
Mohsen

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

enter image description here et les lignes de séparation qui sont affichées après la dernière cellule peuvent être supprimées par l’approche suivante. La meilleure approche consiste à affecter une vue vide à une table, FootView, dans viewDidLoad.

self.tableView.tableFooterView = UIView ()

9
Mohsin Qureshi

Il y a un bug avec iOS 9 beta 4: la ligne de séparation apparaît entre UITableViewCells même si vous définissez separatorStyle sur UITableViewCellSeparatorStyleNone à partir du storyboard. Pour contourner ce problème, 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 vont le réparer dans la prochaine version bêta.

Voici le code pour le définir:

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
5

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

tableViews.separatorStyle = UITableViewCellSeparatorStyleNone;

Ceci est le code de travail.

2
Ashu

Dans votre viewDidLoad:

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