19

アプリ内で明るさを変更する機能をどのようにプログラムしますか?私はそれを行うことができる少なくとも3つのアプリを見たのでそれが可能であることを知っています。これは私のアプリにとって非常に便利です。私はそれがUIScreenクラスを備えたiOS5でのみ可能であることを知っていますが、それをプログラムする方法がわかりません。私を助けてください!

4

4 に答える 4

35

このUIScreenクラスには、という新しいプロパティbrightnessがあります。

さらに、wantsSoftwareDimming(に設定するとYES)という別のプロパティがあり、ハードウェアでサポートされている最低の明るさを下回ることができます。これは、特別な「調光ビュー」が画面にオーバーレイされて、物事をさらに暗くするためです。

プロパティはからへのbrightnessフロートを取ります。それで:01

  • (デフォルト)に設定すると、aはwantsSoftwareDimming「ハードウェアがサポートする最も暗い」を意味し、aは「ハードウェアがサポートする最も明るい」を意味します。NObrightness0brightness1
  • wantsSoftwareDimming設定するとYES、abrightness0「ハードウェアがサポートする最も暗い、調光ビューをオーバーレイすることによる暗くなる」を意味し、abrightness1「ハードウェアがサポートする最も明るい」を意味します。
于 2011-11-21T04:40:54.620 に答える
13

私はそれを試したことがありませんが、ドキュメントを見ると次のようになります。

UIScreen *mainScreen = [UIScreen mainScreen];
mainScreen.brightness = .5; //should set the brightness at 50%
于 2011-11-21T04:37:44.387 に答える
1

他の人が指摘したように、あなたは使うことができます

[[UIScreen mainScreen] setBrightness:1.0];

しかし、問題が発生するので非常に注意してください(ここでの経験から話します)これを見てください: IOS5 setBrightnessはapplicationWillResignActiveで動作しませんでした そしてこれ: 誰もがバックグラウンド/終了で[[UIScreenmainScreen] setBrightness]を使用できましたか?

(私がこのスレッド/回答を発見したとき、私が持っていたらよかったのに):-(

于 2012-10-04T12:08:40.967 に答える
1

次の2つのいずれかを使用できます。

  1. [[UIScreen mainScreen]setBrightness:1.0];

  2. GSEventSetBacklightLevel(0.5f);ただし、これはプライベートAPI呼び出しです。これを使用すると、アプリケーションは確実に拒否されます。

于 2011-11-21T04:40:28.853 に答える