web-dev-qa-db-fra.com

La vue entière de la barre d'état descend - iOS 11

J'ai récemment mis à niveau vers Xcode 9-beta et iOS 11. Lorsque j'ai fait et poussé la lecture sur mon projet, toutes mes vues ont été poussées d'environ 20 pixels vers le bas par la barre d'état, au lieu que la barre d'état soit directement au-dessus de ma vue. Mon partenaire, qui a iOS 10, n'a pas ce problème. J'ai joint une capture d'écran pour votre référence.

Quelqu'un peut-il offrir des conseils? Toute aide serait très appréciée. Merci beaucoup d'avance.

À la vôtre, Theo enter image description here

23
Theo Strauss

Réponse rapide

Vous souhaiterez peut-être définir contentInsetAdjustmentBehavior de votre tableView ou scrollView objet sur .never.

if #available(iOS 11.0, *) {
    tableView.contentInsetAdjustmentBehavior = .never
}

ou

if #available(iOS 11.0, *) {
    scrollView.contentInsetAdjustmentBehavior = .never
}
36
Pavel Vavilov

J'étais confronté au même problème et après des HEURES de recherche, j'ai finalement trouvé le problème.

Xcode 9 a un nouveau concept de zones sûres et par défaut, le storyboard ajoute maintenant une zone sûre en haut de toutes les vues.

Si vous sélectionnez la vue racine de votre ViewController et sélectionnez l'inspecteur de taille, vous verrez une case à cocher, comme vous pouvez le voir sur le image

Décochez-le et ce rembourrage supérieur disparaîtra.

17
Arthur Alvarez
if (@available(iOS 11.0, *)) {
        _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
8
weikel

Si vous utilisez UITableViewStyle.grouped - l'écart de 35px sera toujours là même si vous ajoutez tableView.contentInsetAdjustmentBehavior = .never. Essayez de remplacer UITableViewStyle par plain. Cela a résolu un problème pour moi.

1
Katafalkas