J'ai désactivé Autolayout et viewcontroller est intégré dans le contrôleur de navigation. J'utilise Xcode 5, Storyboard.
Je ne comprends pas pourquoi cela laisse de l'espace par le haut. En fait, dans le storyboard, j'ai mis mon étiquette exactement en dessous de la barre de navigation. Mais quand je l'exécute sur le simulateur, il laisse de l'espace par le haut.
L'un des moyens hacky de résoudre ce problème
-(void)viewWillLayoutSubviews
{
self.scrollViewMain.frame = CGRectMake(0, -70, 320, 800);
self.scrollViewMain.contentSize = CGSizeMake(320, 800);
}
Mais je manque quelque chose d'approche très simple.
Dans Xcode 5, dans le storyboard, sélectionnez votre contrôleur> dans l'inspecteur d'attributs désactivez Ajuster les encarts de la vue de défilement Vérifiez également si vous avez défini un contenu
Edit : J'ai joint une photo
Le correctif consiste à implémenter la ligne de code suivante après dans le viewDidLoad;
self.automaticallyAdjustsScrollViewInsets = NO;
Mise à jour pour iOS 11
if #available(iOS 11.0, *) {
scrollView.contentInsetAdjustmentBehavior = .never
} else {
automaticallyAdjustsScrollViewInsets = false
}
Accédez au storyboard principal. Sélectionnez le contrôleur de vue, voir la propriété "Ajuster les insectes de la vue de défilement" dans l'inspecteur d'attributs. si vous ne voulez pas d'espacement supérieur. décochez ensuite "Sous les barres supérieures". si vous ne voulez pas d'espacement inférieur, décochez ensuite "Sous les barres inférieures". ce genre de problème survient lorsque nous utilisons des contrôleurs liés à la vue de défilement.
Il s'agit d'une fonction de navigation et d'une barre d'onglets pour ajuster le contenu en mode défilement comme les commandes.
Pour moi, dans xcode 7 et Swift 2.x, je remplissais un UIScrollView avec une boucle for et j'ai dû mettre le contentInset à zéro.
for image in images {
self.scrollView.contentInset = UIEdgeInsetsZero
}