iOS 11 a une nouvelle fonctionnalité appelée "Smart Invert Colors", et je veux en profiter dans mon application. J'ai déjà mon propre mode sombre implémenté dans mon application, donc je ferai moi-même le processus "d'inversion des couleurs" lorsque Smart Invert est activé. Ce que je veux savoir c'est:
J'ai cherché partout sur Google, StackOverflow et Apple depuis un certain temps maintenant et je n'ai toujours pas trouvé la réponse.
Merci d'avance!
Mise à jour:
Grâce à @ réponse de Toma , j'ai réussi à empêcher iOS 11 d'inverser les vues dans mon application. Maintenant, j'ai un autre problème ...
Pour la partie détection, il apparaît que UIAccessibility.isInvertColorsEnabled
(Swift 4.2) renverra uniquement true
si Smart Invert est activé (iOS 11). Au moins ça me suffit, pour l'instant. Je me demande maintenant comment savoir quand Classic Invert est activé. Postez une réponse mise à jour ci-dessous si vous savez comment le faire! Merci!
Voir la propriété de iOS 11 UIView
accessibilityIgnoresInvertColors .
Ignorez l'inversion intelligente pour tous les UIImageViews. Définir dans le délégué d'application
if #available(iOS 11.0, *) {
UIImageView.appearance().accessibilityIgnoresInvertColors = true
}
Pour vérifier si le Smart Invert est actuellement activé, vous pouvez utiliser UIAccessibility.isInvertColorsEnabled
. Vous pouvez également recevoir une notification en cas de changement en observant UIAccessibility.invertColorsStatusDidChangeNotification
:
NotificationCenter.default.addObserver(forName: UIAccessibility.invertColorsStatusDidChangeNotification,
object: nil,
queue: OperationQueue.main) {
[weak self] _ in
if UIAccessibility.isInvertColorsEnabled {
// smart invert is enabled
} else {
}
}