読者です 読者をやめる 読者になる 読者になる

なるようになるかも

力は多くの場合、その人の思いを超えない。

iOS7の「コントラストを上げる」設定は、アプリから取得できない

iOS7.0.4時点の情報。

Objective-C - iOS7の曇りガラス効果について知っている事まとめ - Qiita

を読んでいて、

おそらく一般的な希望としてはデフォルトの動作と同じように、「コントラストを上げる」がオン(もしくは曇りガラス非対応機種)の状態ではバーは透過しないのが理想ではないでしょうか。

ではどうやってそれを実装するかですが、標準UIに色の薄いビュー(またはレイヤー)を被せるという手法を採用しました。

iPhoneに限ればblurエフェクト非対応機種はiPhone4だけなので、sysctlbyname()関数と「コントラストを上げる」設定が有効になっているかどうかで分岐すればいいんじゃないの?

……と思ったんだけど、「コントラストを上げる」設定を取得するAPIは用意されてないらしい。

アクセシビリティには他にも色々な設定があるのだけど、例えば「VoiceOver」が有効かどうかはUIAccessibilityIsVoiceOverRunning()、「色を反転」の場合はUIAccessibilityIsInvertColorsEnabled()が返却するBOOL値によって取得できるので、「コントラストを上げる」に相当する関数がない理由は不明。

起動引数という可能性を考えたけど、こちらも見当たらない。

参考

ios7 - Is there a way to check if "increase contrast" is enabled in the accessibility settings in iOS? - Stack Overflow