Pourquoi UIScrollView laisse-t-il de la place dans les ios 6 et 7?

entrer la description de l'image ici

entrer la description de l'image ici

J’ai désactivé Autolayout et viewcontroller est intégré au contrôleur de navigation. J’utilise Xcode 5, Storyboard.

Je ne comprends pas pourquoi est-ce laisser l’espace du haut. En fait, dans le storyboard, j’ai mis mon étiquette exactement sous la barre de navigation. Mais quand je le lance sur un simulateur, il laisse de la place.

Un des moyens 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 votre storyboard, sélectionnez votre contrôleur> dans Inspecteur des atsortingbuts, désactivez l’option Ajuster les encarts de la vue de défilement. Vérifiez également si vous avez défini un quelconque contenu

Edit : J’ai joint une photo

entrer la description de l'image ici

La solution consiste à implémenter la ligne de code suivante après dans viewDidLoad;

self.automaticallyAdjustsScrollViewInsets = NO;

Mise à jour pour iOS 11

 if #available(iOS 11.0, *) { scrollView.contentInsetAdjustmentBehavior = .never } else { automaticallyAdjustsScrollViewInsets = false } 

Aller 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’atsortingbut. Si vous ne voulez pas d’espacement supérieur, décochez “Sous les barres supérieures”. Si vous ne voulez pas d’espacement inférieur, décochez “Sous les barres inférieures”. Ce genre de problème survient lorsque nous utilisons des contrôleurs liés à la vue de défilement.

Ceci est une fonctionnalité pour la navigation et la barre d’tabs pour ajuster le contenu en mode défilement comme les contrôles.

Pour moi dans xcode 7 et Swift 2.x, je remplissais un UIScrollView avec une boucle for et je devais définir contentInset à zéro.

 for image in images { self.scrollView.contentInset = UIEdgeInsetsZero } 

Inspecteur: sélectionnez scrollView et configurez Content Insets – jamais

entrer la description de l'image ici