85 votes

Comment masquer/ supprimer un séparateur de ligne si les cellules sont vides

J'ai UITableView et je n'ai que 3 lignes et je peux voir ces 3 lignes. Le problème est que les cellules sont vides, je peux voir les lignes. Je ne veux pas voir ces lignes.

Aucune idée comment faire pour supprimer ces lignes?

Ci-dessous est l'image de ce que je suis à la recherche d'.

Image Link

147voto

nickfalk Points 2400

Encore plus simple que Andrey Z de la réponse: Suffit de faire un faux tableFooterView dans votre UITableView classe:

self.tableFooterView = [UIView new]; // to hide empty cells

89voto

iPatel Points 15121

Vous pouvez masquer UITableView'ligne de séparation par utiliser le code ci-dessous. La façon la plus simple pour ajouter un séparateur personnalisé est d'ajouter de la simple UIView de 1px de hauteur:

UIView* separatorLineView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 1)];
separatorLineView.backgroundColor = [UIColor clearColor]; // set color as you want.
[cell.contentView addSubview:separatorLineView];

OU

    self.tblView=[[UITableView alloc] initWithFrame:CGRectMake(0,0,320,370) style:UITableViewStylePlain];
    self.tblView.delegate=self;
    self.tblView.dataSource=self;
    [self.view addSubview:self.tblView];

    UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 10)];
    v.backgroundColor = [UIColor clearColor];
    [self.tblView setTableHeaderView:v];
    [self.tblView setTableFooterView:v];
    [v release];

OU

- (float)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
    // This will create a "invisible" footer
    return 0.01f;
}

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    // To "clear" the footer view
    return [[UIView new] autorelease];
}

OU

Et aussi vérifier "@nickfalk" réponse, elle est très courte et utile aussi. :) Et vous devriez aussi essayer avec cette seule ligne,

self.tableView.tableFooterView = [[UIView alloc] init];

Pas sûr, mais c'est de travailler dans toutes les version de iOS, je l'ai vérifié avec iOS 5 et la dernière (dans iOS 7 aussi). ça marche très bien pour moi.

Grâce codage heureux :)

7voto

Andrey Z. Points 3298

Transparente UIView comme tableView pied de page avec 1px de hauteur fera l'affaire.

UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 1)];
v.backgroundColor = [UIColor clearColor];
[self.tableView setTableFooterView:v];

6voto

Robert Varga Points 125
self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

3voto

Pradhyuman sinh Points 2482

Utilisez ce Code pour supprimer le séparateur de ligne pour les cellules vides.

 - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
// This will create a "invisible" footer
return 0.01f;
}

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
     return [UIView new];

    // If you are not using ARC:
    // return [[UIView new] autorelease];
}   

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X