アプリ内で明るさを変更する機能をどのようにプログラムしますか?私はそれを行うことができる少なくとも3つのアプリを見たのでそれが可能であることを知っています。これは私のアプリにとって非常に便利です。私はそれがUIScreenクラスを備えたiOS5でのみ可能であることを知っていますが、それをプログラムする方法がわかりません。私を助けてください!
4 に答える
このUIScreen
クラスには、という新しいプロパティbrightness
があります。
さらに、wantsSoftwareDimming
(に設定するとYES
)という別のプロパティがあり、ハードウェアでサポートされている最低の明るさを下回ることができます。これは、特別な「調光ビュー」が画面にオーバーレイされて、物事をさらに暗くするためです。
プロパティはからへのbrightness
フロートを取ります。それで:0
1
- (デフォルト)に設定すると、aは
wantsSoftwareDimming
「ハードウェアがサポートする最も暗い」を意味し、aは「ハードウェアがサポートする最も明るい」を意味します。NO
brightness
0
brightness
1
- に
wantsSoftwareDimming
設定するとYES
、abrightness
は0
「ハードウェアがサポートする最も暗い、調光ビューをオーバーレイすることによる暗くなる」を意味し、abrightness
は1
「ハードウェアがサポートする最も明るい」を意味します。
私はそれを試したことがありませんが、ドキュメントを見ると次のようになります。
UIScreen *mainScreen = [UIScreen mainScreen];
mainScreen.brightness = .5; //should set the brightness at 50%
他の人が指摘したように、あなたは使うことができます
[[UIScreen mainScreen] setBrightness:1.0];
しかし、問題が発生するので非常に注意してください(ここでの経験から話します)これを見てください: IOS5 setBrightnessはapplicationWillResignActiveで動作しませんでした そしてこれ: 誰もがバックグラウンド/終了で[[UIScreenmainScreen] setBrightness]を使用できましたか?
(私がこのスレッド/回答を発見したとき、私が持っていたらよかったのに):-(
次の2つのいずれかを使用できます。
[[UIScreen mainScreen]setBrightness:1.0];
GSEventSetBacklightLevel(0.5f);
ただし、これはプライベートAPI呼び出しです。これを使用すると、アプリケーションは確実に拒否されます。