web-dev-qa-db-fra.com

Comment vérifier l'userfacestyle actuel de l'appareil iOS de manière programmatique?

Je suis capable d'obtenir UserPacestestyle à l'aide de TRAITCOLLECTION DE TOUTE VUE OU VIEWCONTROLLER IE. Sombre ou léger. Mais lorsque j'ai forcé l'application d'utiliser le mode sombre ou lumineux, je veux savoir quel est l'userfacestyle actuel de l'appareil iOS indépendamment de l'application?

J'ai essayé des caractères de caractères de l'UISCREEN, mais il est toujours nécessaire de fournir UserFacestestyle de l'application et non de l'appareil.

8
Raushan Kumar

Dans les cas où vous avez plusieurs visiteurs ou Windows dans lesquels vous souhaitez que le style d'interface soit dynamique (ou comme dans votre cas, verrouillé), je discuterais d'utiliser le TraitCollectionDidChange (_ :) rappel et regarder à la propriété userInterfaceStyle. Cela reflétera l'état actuel du style d'interface (même s'il est verrouillé). Rappelez-vous simplement que les contrôleurs de la vue enfant hériteront de leur cadre parent.

De cette façon, vous pouvez concevoir votre code pour se comporter correctement en fonction du style d'interface actuel en cours de transition de-> à. L'exemple ci-dessous fonctionnera dans Custom UIViewControlers ainsi que sur Personnalisé UIViews.

Exemple (Swift 4):

override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
    super.traitCollectionDidChange(previousTraitCollection)
    if self.traitCollection.userInterfaceStyle != previousTraitCollection.userInterfaceStyle {
    // Your custom implementation here that is run right after the userInterfaceStyle has changed.
    }
}
1
Alexander W