web-dev-qa-db-fra.com

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 voudrais 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?

33
Vlad

Vous devez remplacer prefersHomeIndicatorAutoHidden dans votre contrôleur de vue pour y parvenir:

override var prefersHomeIndicatorAutoHidden: Bool {
    return true
}
45
Tamás Sengel

Il y a une autre alternative. Si vous recherchez le comportement qui assombrit l'indicateur, puis lorsque l'utilisateur glisse vers le haut, il s'active, et lorsqu'il glisse de nouveau vers le haut, l'action de base est invoquée (IE, il faut deux glissements pour l'appeler), alors la réponse est la suivante: - comportement de l'indicateur d'accueil de l'iPhone X . En résumé, vous devez remplacer votre UIViewController:

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

prefersHomeIndicatorAutoHidden ne masque que l'indicateur, mais ne supprime pas le geste.

Et vous obtiendrez ce que vous voulez (si je comprends bien vos commentaires - votre question et la réponse choisie semblent impliquer l’autre réponse).

15
absmiths

Si votre window?.rootViewController est un UITabBarController ou UINavigationController, il suffit d’en hériter et d’ajouter deux fonctions comme suit,

override var prefersHomeIndicatorAutoHidden: Bool {
    return true
}

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

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

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

2
DrMickeyLauer
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.

enter image description here

1
pierreafranck