Question Comment supprimer des cellules vides dans UITableView? [dupliquer]


Cette question a déjà une réponse ici:

j'essaie d'afficher un simple UITableView avec quelques données. Je souhaite définir la hauteur statique de la UITableView de sorte qu'il n'affiche pas les cellules vides à la fin du tableau. comment je fais ça?

code:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    NSLog(@"%d", [arr count]);
    return [arr count];
}

314
2018-01-25 10:45


origine


Réponses:


Définir une vue de pied de table de hauteur zéro (peut-être dans votre viewDidLoad méthode), comme ça:

Rapide:

tableView.tableFooterView = UIView()

Objectif c:

tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

Comme la table pense qu'il y a un pied de page à afficher, elle n'affiche aucune cellule en plus de celles que vous avez explicitement demandées.

Interface pro-constructeur:

Si vous utilisez un xib / Storyboard, vous pouvez simplement faire glisser un UIView (avec la hauteur 0pt) dans le bas de UITableView.


794
2018-01-25 11:11



Swift 3 syntaxe:

tableView.tableFooterView = UIView(frame: .zero)

Syntaxe Swift: <2.0

tableView.tableFooterView = UIView(frame: CGRect.zeroRect)

Swift 2.0 syntaxe:

tableView.tableFooterView = UIView(frame: CGRect.zero)

89
2018-01-30 20:50



Dans le Storyboard, sélectionnez le UITableViewet modifiez la propriété Style à partir de Plain à Grouped.


53
2018-04-18 10:17



Mis en œuvre avec swift sur Xcode 6.1

self.tableView.tableFooterView = UIView(frame: CGRectZero)
self.tableView.tableFooterView?.hidden = true

La deuxième ligne de code ne provoque aucun effet sur la présentation, vous pouvez utiliser pour vérifier si est caché ou non.

Réponse tirée de ce lien Impossible de masquer les cellules vides dans UITableView Swift


13
2017-10-21 20:00



Je ne peux pas ajouter de commentaire pour le moment, en ajoutant ceci comme réponse.

La réponse de @ Andy est bonne et les mêmes résultats peuvent être obtenus avec la ligne de code suivante:

tableView.tableFooterView = [UIView new];

La méthode 'new' appartient à la classe NSObject et appelle les méthodes alloc et init pour UIView.


11
2017-12-31 12:24



J'ai essayé le code:

tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

dans le viewDidLoad section et xcode6 ont montré un avertissement. J'ai mis un "soi". en face de lui et maintenant ça fonctionne bien. donc le code de travail que j'utilise est:

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

6
2017-10-30 14:29



ou vous pouvez appeler la méthode tableView pour définir la hauteur du pied de page en 1 point, et cela ajoutera une dernière ligne, mais vous pouvez aussi la masquer en définissant la couleur d'arrière-plan du pied de page.

code:

func tableView(tableView: UITableView,heightForFooterInSection section: Int) -> CGFloat {
     return 1
}

ressemble à la dernière ligne


2
2018-02-29 10:05



En utilisant UITableViewController

La solution acceptée va changer la hauteur de la TableViewCell. Pour résoudre ce problème, effectuez les étapes suivantes:

  1. Écrire un extrait de code donné ci-dessous dans ViewDidLoad méthode.

    tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

  2. Ajouter la méthode suivante dans le TableViewClass.m fichier.

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
    {
        return (cell height set on storyboard); 
    }
    

C'est tout. Vous pouvez créer et exécuter votre projet.


1
2017-12-08 12:59



override func viewWillAppear(animated: Bool) {
    self.tableView.tableFooterView = UIView(frame: CGRect.zeroRect)

/// OR 

    self.tableView.tableFooterView = UIView()
}

1
2017-10-30 05:41