J'ai un UITableView dans le style groupé, et une seule section. Cependant, il y a un espace vide au-dessus et en dessous de la vue de table qui est affiché lorsque l'utilisateur fait défiler trop. Comment puis-je supprimer cet espace?
Pour ce faire, modifiez la propriété contentInset
dont la vue table hérite de UIScrollView
.
self.tableView.contentInset = UIEdgeInsetsMake(-20, 0, -20, 0);
Cela fera le haut et le bas toucher le bord.
Ajoutez ce code:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 0;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
return 0;
}
En fait, cette question a répondu à ma question.
Cette réponse arrive assez tard, mais j'espère que cela aidera quelqu'un.
L'espace existe à cause de la propriété UITableView
de tableHeaderView
's. Lorsque la propriété tableHeaderView
est nil
, Apple affiche par défaut une vue. La solution consiste donc à créer une vue vide avec une hauteur supérieure à 0
. La définition de cette option remplace la vue par défaut, supprimant ainsi l’espace indésirable.
Cela peut être fait dans un Storyboard en faisant glisser une vue vers le haut d'une tableView
, puis en définissant la hauteur de la vue sur une valeur de 1
ou supérieure.
Ou cela peut être fait par programme avec le code suivant:
Objective-C:
CGRect frame = CGRectZero;
frame.size.height = CGFLOAT_MIN;
[self.tableView setTableHeaderView:[[UIView alloc] initWithFrame:frame]];
Swift:
var frame = CGRect.zero
frame.size.height = .leastNormalMagnitude
tableView.tableHeaderView = UIView(frame: frame)
Comme d'autres l'ont noté, vous pouvez utiliser cette même solution pour les bas de page.
Voir Documentation pour plus de détails sur la propriété tableHeaderView
.
Merci à @liushuaikobe pour la vérification de l’utilisation du nombre normal le moins positif.
Ma réponse initiale: https://stackoverflow.com/a/22185534/2789144
UIView peut être inséré en haut et en bas du tableau (glisser-déposer). Définissez leurs propriétés comme étant transparentes et d’une hauteur de 1 px. Ceci est pour enlever le rembourrage supplémentaire devant les cellules.
Dans mon cas, le problème était lié aux contraintes que je postulais. Je dois les changer pour afficher 2 lignes dans mon cas tout en bas du tableau touchant la dernière ligne.
vous pouvez également utiliser ce code pour supprimer de l'espace entre la première cellule de uitableview.
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 0.002f;// set this...
}