56 votes

iPhone X masquer l'indicateur d'accueil sur le contrôleur de vue

J'ai un contrôleur de vue qui occupe tout l'écran de haut en bas. Je souhaite masquer l'indicateur de barre de la maison en bas de l'écran sur les appareils iPhone X.

Comment puis-je faire cela dans iOS 11?

86voto

Tamás Sengel Points 25414

Vous devez remplacer prefersHomeIndicatorAutoHidden dans votre contrôleur de vue pour atteindre cet objectif:

 override var prefersHomeIndicatorAutoHidden: Bool {
    return true
}
 

29voto

absmiths Points 485

Il est une autre alternative. Si vous êtes à la recherche pour le comportement où l'indicateur s'atténue ensuite, lorsque l'utilisateur glisse le doigt vers le haut il s'active, et quand ils balayez vers le haut à nouveau la maison de l'action est invoquée (I. E., deux balayages sont nécessaires pour invoquer), alors la réponse est ici: iPhone X maison de l'indicateur de comportement. Le court est à remplacer sur votre UIViewController:

override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge {
  return .bottom
}

prefersHomeIndicatorAutoHidden ne cache que l'indicateur, mais ne permettra pas de supprimer le geste.

Et vous obtiendrez ce que vous voulez (Si j'ai bien compris vos commentaires correctement à votre question et la réponse choisie semblent impliquer l'autre réponse).

6voto

Dawn Song Points 21

Si votre window?.rootViewController est un UITabBarController ou UINavigationController , héritez-le simplement et ajoutez deux fonctions comme suit,

 override var prefersHomeIndicatorAutoHidden: Bool {
    return true
}

//@available(iOS 11, *)
override var childViewControllerForHomeIndicatorAutoHidden: UIViewController? {
    return nil
}
 

3voto

DrMickeyLauer Points 544

Implémentez -(BOOL)prefersHomeIndicatorAutoHidden dans votre UIViewController et retournez YES .

En savoir plus https://developer.apple.com/documentation/uikit/uiviewcontroller/2887510-prefershomeindicatorautohidden .

1voto

pierreafranck Points 183
 override func  prefersHomeIndicatorAutoHidden() -> Bool {
    return true
}
 

Je suppose que vous pouvez ajouter cette méthode à votre indicateur AppDelegate for hide home sur tous vos ViewControllers.

entrez la description de l'image ici

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X