How would I program the ability to change brightness in-app? I know that its possible as I have seen at least three apps that can do it. This would be very useful for my app. I know that it's only possible in iOS 5 with the UIScreen Class, but I have no idea how to program it. Please help me!
4 Answers
The UIScreen
class has a new property called brightness
.
In addition, there's another property called wantsSoftwareDimming
that (when set to YES
) allows you to go below the lowest brightness supported by the hardware, because a special "dimming view" is overlaid over the screen to darken things even further.
The brightness
property takes a float from 0
to 1
. So:
- with
wantsSoftwareDimming
set toNO
(the default), abrightness
of0
means "the darkest the hardware supports" and abrightness
of1
means "the brightest the hardware supports". - with
wantsSoftwareDimming
set toYES
, abrightness
of0
means "the darkest the hardware supports PLUS darkening by overlaying a dimming view", and abrightness
of1
still means "the brightest the hardware supports".

- 242,470
- 58
- 448
- 498
-
Thanks for the information. I didn't know about the 'wantsSoftwareDimming' option, but it helps my app a lot! – cory ginsberg Nov 21 '11 at 04:48
I have never tried it, but looking at the docs it should go like this:
UIScreen *mainScreen = [UIScreen mainScreen];
mainScreen.brightness = .5; //should set the brightness at 50%

- 14,676
- 2
- 42
- 46
As others pointed out you can use
[[UIScreen mainScreen] setBrightness:1.0];
BUT be very careful because you will run into problems (talking from experience here) look at this: IOS5 setBrightness didn't work with applicationWillResignActive and this: Anyone been able to use [[UIScreen mainScreen] setBrightness] on background / exit?
(I wish I had, when I discovered this thread/answer) :-(