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?
Vous devez remplacer prefersHomeIndicatorAutoHidden
dans votre contrôleur de vue pour y parvenir:
override var prefersHomeIndicatorAutoHidden: Bool {
return true
}
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).
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
}
Implémentez -(BOOL)prefersHomeIndicatorAutoHidden
dans votre UIViewController
et renvoyez YES
.
En savoir plus https://developer.Apple.com/documentation/uikit/uiviewcontroller/2887510-prefershomeindicatorautohidden .