iOS技术收藏iOS小功能点

iOS调节屏幕亮度的方法

2018-03-04  本文已影响469人  廿有四

这是我的简书第一篇。一直在想要不要把这个发出来,因为这个问题的解决方法开始是学习HJaycee - 简书的一篇文章iOS仿支付宝二维码页逐步调整屏幕亮度 - 简书。我只是在他的基础上多添加了一个方法而已,在这里发表出来,就当是记录一下这个知识点。

我添加了方法:快速恢复之前亮度的方法

+ (void)fastResumeBrightness{

    if (!_queue) {

        _queue = [[NSOperationQueue alloc] init];

        _queue.maxConcurrentOperationCount = 1;

    }

    [_queue cancelAllOperations];

    [_queue addOperationWithBlock:^{

        [UIScreen mainScreen].brightness = _currentBrightness;

    }];

}

然后去掉了

+ (void)initialize{

    //系统通知:手机亮度改变时发送的通知

//    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(saveDefaultBrightness) name:UIScreenBrightnessDidChangeNotification object:nil];

//    [self saveDefaultBrightness];

}

保存手机之前的亮度我是在进入二维码页面时保存,没有根据亮度的变化而实时保存。

//保存亮度

[JCBrightness saveDefaultBrightness]; 

二维码页面添加 程序变成激活状态 程序将失去激活状态 这两个通知

具体方法为:

#pragma mark --添加通知

-(void)addNSNotification{

//    UIKIT_EXTERN NSString *const UIApplicationDidBecomeActiveNotification;    //程序变成激活状态

//    UIKIT_EXTERN NSString *const UIApplicationWillResignActiveNotification;    //程序将失去激活状态

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(DidBecomeActive) name:UIApplicationDidBecomeActiveNotification object:nil];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willResignActive) name:UIApplicationWillResignActiveNotification object:nil];

}

//成为激活状态,调高亮度

-(void)DidBecomeActive{

    [JCBrightness graduallySetBrightness:0.8];

}

//失去激活状态,快速恢复之前的亮度

-(void)willResignActive{

    [JCBrightness fastResumeBrightness];

}

加了这两个通知后,自动调节屏幕亮度就比较完美了。

下面为代码链接地址:GitHub - leon-zhangxb/brightnessGradientDemo: iOS仿支付宝二维码页面调节屏幕亮度

ps:贴代码块花费了好长时间,```……```,<code>……</code>都试过了不行,突然发现B下面有个“ (引用),才搞好了的。

上一篇下一篇

猜你喜欢

热点阅读