web-dev-qa-db-fra.com

Espace blanc vide au-dessus de UITableView à l'intérieur d'un UIView

J'essaie de placer un TableView dans ma vue ViewController, tout en laissant un écart de hauteur de 44 entre le bas de la barre de navigation et le haut de la table. J'ai ensuite voulu placer un UITextField à l'intérieur de cet espace pour agir en tant qu'en-tête stationnaire. Pour quelque raison que ce soit, le TableView a un espace blanc vide au-dessus du début des "Cellules prototypes". C'est juste un espace blanc. Voici à quoi cela ressemble dans le storyboard.

storyboard

Lorsque vous affichez l’application, voici à quoi cela ressemble:

app1

Lorsque vous faites défiler la table, cela va jusqu'au bon endroit:

app2

29
Fenda

Essayez de regarder dans 'l'inspecteur d'attributs' (dans le menu de droite) du ViewController des participants. Cochez l'option 'Étendre les bords' et décochez la case 'Sous les barres du haut', puis déplacez votre tableview. 

Une autre solution possible consiste simplement à décocher l'option 'Ajuster les incrustations de la vue de défilement'. La raison en est que lorsque viewController étend ses bords, disons sous la barre supérieure, le scrollView de tableView ajuste automatiquement le haut de son insertion, de sorte que le contenu de la tableView démarre exactement sous la barre supérieure. Mais dans votre cas, cela n’est pas nécessaire, car votre tableView commence elle-même sous la barre.

Concentrez-vous sur le ViewController et accédez à l’onglet Inspecteur d’attributs:

 enter image description here

89
oren

Essaye celui-là:

self.tableView.contentInset = UIEdgeInsetsMake(-65, 0, 0, 0)
12

Ajoutez simplement ceci dans votre méthode ViewDidLoad

self.automaticallyAdjustsScrollViewInsets = NO;
9
Fadi Abuzant

Vous ne devriez pas avoir besoin de changer le paramètre par défaut pour Extend Edges.

On dirait que le vrai problème est une vue d'en-tête de tableau vide dans votre storyboard. Cela apparaît dans la capture d'écran que vous avez fournie de votre scénario, juste en dessous de la vue Saisir un nom et juste au-dessus de la vue Cellules prototype. Supprime-le. 

1
Mike Taverne

changer votre style de vue de groupe de groupé à plaine

 as shown here

0
venkatesh

Je viens de trouver une solution pour cela . Dans mon cas, j'utilisais TabBarViewController, A juste décocher l'option 'Adjust Scroll View Insets' Les problèmes disparaissent.

https://i.stack.imgur.com/qgQI8.png

0
NitinLandge

Mon problème est que je pose tableHeaderView comme nouveau UIView

self.tableHeaderView = UIView(frame: .zero)

Supprimez cette ligne, le problème est parti. Essaye ça:

//self.tableHeaderView = UIView(frame: .zero)
0
AshvinGudaliya

Pour les personnes Objective-C, ajoutez ceci à votre méthode ViewDidLoad.

[self.tableView setContentInset:UIEdgeInsetsMake(-20, 0, 0, 0)];
0
Rishabh Munde