iOS7の「コントラストを上げる」設定は、アプリから取得できない
iOS7.0.4時点の情報。
Objective-C - iOS7の曇りガラス効果について知っている事まとめ - Qiita
を読んでいて、
おそらく一般的な希望としてはデフォルトの動作と同じように、「コントラストを上げる」がオン(もしくは曇りガラス非対応機種)の状態ではバーは透過しないのが理想ではないでしょうか。
ではどうやってそれを実装するかですが、標準UIに色の薄いビュー(またはレイヤー)を被せるという手法を採用しました。
iPhoneに限ればblurエフェクト非対応機種はiPhone4だけなので、sysctlbyname()
関数と「コントラストを上げる」設定が有効になっているかどうかで分岐すればいいんじゃないの?
……と思ったんだけど、「コントラストを上げる」設定を取得するAPIは用意されてないらしい。
アクセシビリティには他にも色々な設定があるのだけど、例えば「VoiceOver」が有効かどうかはUIAccessibilityIsVoiceOverRunning()
、「色を反転」の場合はUIAccessibilityIsInvertColorsEnabled()
が返却するBOOL
値によって取得できるので、「コントラストを上げる」に相当する関数がない理由は不明。
起動引数という可能性を考えたけど、こちらも見当たらない。