mon problème est le suivant: avec iOS 7 groupé UITableView
, il y a un espace vide en haut de la table et dans la première cellule.
Ce qui est étrange, c'est que lorsque je charge le contenu pour la première fois, le tableau apparaît comme dans la première image, mais lorsque je fais défiler l'écran, un espace apparaît entre la première et la première cellule, comme dans la deuxième
Avec un style simple, ce comportement n’est pas apparu, mais malheureusement, j’ai besoin d’utiliser une vue groupée.
Des idées sur?
Ajoutez juste ceci dans votre méthode ViewDidLoad
self.automaticallyAdjustsScrollViewInsets = NO;
La réponse a été très amusante pour moi et mon équipe, et a fonctionné comme un charme
RAISON:
Nous avons observé que cela se produit uniquement pour la première vue dans la hiérarchie de vues, si cette première vue est une vue UITableView . Ainsi, toutes les autres vues UITableViews similaires n'ont pas cette section gênante, à l'exception de la première . Nous avons essayé de déplacer UITableView hors de la première place dans la hiérarchie des vues et tout fonctionnait comme prévu.
cela résout mon problème similaire:
if ([[UIDevice currentDevice].systemVersion floatValue] >= 7){
tableView.contentInset = UIEdgeInsetsMake(-20, 0, 0, 0);
}
Accédez à l'inspecteur d'attributs du contrôleur de vue en sélectionnant le xib ou le contrôleur dans Storyboard. Décochez la case Ajuster les incrustations de la vue de défilement dans Disposition . Ça va résoudre le problème
Si vous utilisez un UITableView avec un style groupé et un seul groupe, utilisez le style brut pour résoudre votre problème.
UITableViewController *tableViewController;
tableViewController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
La solution la plus simple à ce problème dans le type groupé tableView
est la suivante:
tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.tableView.bounds.size.width, 0.01f)];
Pour résoudre ce problème, assurez-vous que vous avez décoché ce champ sur ViewController:
Sur ViewController >> Inspecteur Attibutes >> Mise en page (décochée - Ajuster les incrustations d'affichage défilant)
si cela ne suffit pas, essayez ceci sur TableView, définissez Style sur Plain:
Cela résoudra votre problème
les gars! J'ai eu le même problème. TableView est apparu avec un espace libre entre la barre de navigation et la première cellule . Ce code m'a sauvé:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0) {
return 10;
}
else return 2;
}
Il y avait un espace au-dessus de UITableView lui-même, ainsi qu'entre les cellules . J'ai trouvé ma solution dans 2 réponses différentes ci-dessus .. l'afficher à nouveau pour que personne ne manque les deux solutions.
Cela a supprimé l'espace d'en haut:
self.automaticallyAdjustsScrollViewInsets = NO;
et cela a supprimé les espaces situés sous les cellules: Définir l'attribut 'Style' de UITableView sur 'Plain'
Je travaille avec Xcode 7.3.1
, iOS9
et Swift 2
. Je voudrais partager ce qui a fonctionné pour moi:
Ajoutez juste ceci dans votre méthode ViewDidLoad
self.automaticallyAdjustsScrollViewInsets = false;
Avait un problème similaire, même en définissant automatiquementAdjustsScrollViewInsets à NO Cela a résolu pour moi:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;
{
return CGFLOAT_MIN;
}
Je me rends compte que cela a été répondu il y a longtemps, mais pour quiconque se heurtera à une situation similaire, je partagerai ce qui a finalement fonctionné pour moi:
Si vous utilisez une bibliothèque xib, sélectionnez la vue de niveau supérieur et définissez l'option "Barre d'état" sur "Aucune" dans la zone Mesures simulées de l'inspecteur des attributs. Correction de mon problème d'espacement.
Pour moi cela n'a pas fonctionné
self.automaticallyAdjustsScrollViewInsets = NO;
Cela a uniquement entraîné l'affichage de la vue sous la barre de navigation.
Ce qui a fonctionné pour moi a été d'aller dans mon story-board et de redimensionner ma tableView. Il semble que mon tableView avait un espace vide de 20 pixels au sommet pour permettre le statusBar. Je l'ai mis à l'échelle et tout est parfaitement aligné.
À partir de iOS 7, vous obtenez automatiquement un en-tête de groupe et de l'espace. Comparez votre application à l'application Paramètres et vous verrez. Vous pouvez contourner ce problème en demandant à UITableView de définir une hauteur d'en-tête aussi petite que possible. Voir Comment cacher le premier en-tête de groupe .
Je voyais cet espace supplémentaire au sommet d'une de mes vues de table dans une situation très étrange.
Après avoir ajouté une UIScrollView
comme vue racine de mon premier contrôleur dans ma pile de navigation, si je présentais le contrôleur suivant sous la forme d'une séquence Show Detail
, mon contrôleur suivant disposerait de l'espace situé au-dessus de la vue de tableau.
La solution pour moi était de changer le lieu de passage en Present Modally
et tout est rentré dans l'ordre.
La partie la plus étrange du changement de séquence a été que avant j’avais ajouté que ma vue racine était une variable UIScrollView
, ma séquence Show Detail
présentait le prochain contrôleur de manière modale. Pourtant, après, j'ai ajouté la racine UIScrollView
, la séquence Show Detail
était poussant sur le prochain contrôleur (ce qui n'était pas ce que je voulais).