iOS 11には「Smart Invert Colors」と呼ばれる新しい機能があります。この機能をアプリで活用したいと思います。アプリには独自のダークモードが既に実装されているため、Smart Invertが有効になっているときに自分で「色反転」プロセスを実行します。私が知りたいのは:
Google、StackOverflow、およびApple開発者のWebサイトでどこでも検索しましたが、答えが見つかりませんでした。
前もって感謝します!
更新:
@ Toma's answer のおかげで、iOS 11がアプリのビューを反転させないようにできました。今、私は別の問題を抱えています...
検出部分については、UIAccessibility.isInvertColorsEnabled
(Swift 4.2)は、スマート反転がオンの場合にのみtrue
を返します(iOS 11)。少なくとも今のところはそれで十分です。 Classic Invertがオンになっていることを確認する方法を知りたいと思っています。方法を知っている場合は、更新された回答を以下に投稿してください!ありがとう!
IOS 11 UIView
のプロパティ accessibilityIgnoresInvertColors を参照してください。
すべてのUIImageViewのスマート反転を無視します。アプリデリゲートで設定
if #available(iOS 11.0, *) {
UIImageView.appearance().accessibilityIgnoresInvertColors = true
}
スマート反転が現在有効になっているかどうかを確認するには、 UIAccessibility.isInvertColorsEnabled
。 UIAccessibility.invertColorsStatusDidChangeNotification
:
NotificationCenter.default.addObserver(forName: UIAccessibility.invertColorsStatusDidChangeNotification,
object: nil,
queue: OperationQueue.main) {
[weak self] _ in
if UIAccessibility.isInvertColorsEnabled {
// smart invert is enabled
} else {
}
}