通过代码调节屏幕亮度

前言


# 一. 控制手机的屏幕亮度

# 1. 方法:

#pragma mark -- 设置亮度
// value :屏幕的亮度值 这个值介于0和1之间
[[UIScreen mainScreen] setBrightness: value];

#pragma mark -- 获取亮度
CGFloat *brightness = [[UIScreen mainScreen] brightness];

# 2. 注意:

  1. 该方法会 即时更改屏幕亮度,无需手动刷新;
  2. 该方法是调整了整个手机的屏幕亮度,并不仅仅是当前 APP 的亮度;
  3. 这个亮度在完全退出当前 APP 后还是会继续保持的;

# 二. 控制当前 APP 的屏幕亮度

# 1. 思路:

上述的方式只能全局修改手机的屏幕亮度, 要只对当前 APP 亮度修改,可以在进入 APP 之前将当前亮度值保存, 在 APP 退出时将当前亮度还原。

# 2. 实现:

#pragma mark -- 程序启动
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

   // 1. 获取当前手机亮度
   CGFloat *brightness = [[UIScreen mainScreen] brightness];
   self.brightness = brightness;
	
   // 2. 对当前 APP 设置特有亮度
   [[UIScreen mainScreen] setBrightness:1];

   return YES;
}

#pragma mark -- 程序将要进入后台
- (void)applicationWillResignActive:(UIApplication *)application {

   // 还原原来的亮度
   [[UIScreen mainScreen] setBrightness:self.brightness];
}

#pragma mark -- 程序将要进入前台
-(void)applicationWillEnterForeground:(UIApplication *)application {
	
   // 对当前 APP 设置特有亮度
   [[UIScreen mainScreen] setBrightness:1];
}