Я уменьшаю яркость экрана до ее исходного значения, когда приложение вводит фон, более конкретно, я использую этот метод в applicationWillResignActive, но почему-то код не работает, где я пропускаю?
Код увеличения яркости такой же, как и код уменьшения, но последний не работает ........
Objective-C
//increase light
-(void)graduallyHighlightScreen{
CGFloat currentBrightness = [UIScreen mainScreen].brightness;
if (currentBrightness >= ScanBrightness){
return;
}else{
if (!_highlighted) {
_originalBrightness = currentBrightness;
_highlighted = YES;
[self createLightChangeTimer];
}else{
return;
}
}
}
//decrease light(I call this in applicationWillResignActive)
-(void)graduallyDarkenScreen
{
if (_highlighted) {
[self createLightChangeTimer];
_highlighted = NO;
}else{
return;
}
}
//create light change timer
-(void)createLightChangeTimer
{
self.endCount = 0;
[self.lightChangeTimer invalidate];
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.01
target:self
selector:@selector(changeLight)
userInfo:nil
repeats:YES];
[[NSRunLoop currentRunLoop]addTimer:timer forMode:NSDefaultRunLoopMode];
timer.fireDate = [NSDate date];
self.lightChangeTimer = timer;
}
-(void)changeLight
{
CGFloat increment = (ScanBrightness - _originalBrightness) / BrightnessChangeCount;
//stop increasing
if (self.highlighted && (fabs([UIScreen mainScreen].brightness - ScanBrightness) < 0.001 || self.endCount == BrightnessChangeCount))
{
[self.lightChangeTimer invalidate];
}
//stop decreasing
else if (!self.highlighted && (fabs([UIScreen mainScreen].brightness - _originalBrightness) < 0.001 || self.endCount == BrightnessChangeCount))
{
[self.lightChangeTimer invalidate];
}
//increasing brightness
else if(self.highlighted)
{
[UIScreen mainScreen].brightness += increment;
self.endCount ++;
}
//decreasing brightness(this won't work when app is in background)
else if (!self.highlighted)
{
[UIScreen mainScreen].brightness -= increment;
self.endCount ++;
}
}
Я ожидаю, что яркость снизится до исходного значения, но когда приложение переходит в фоновый режим, срабатывает код уменьшения, яркость просто немного меняется.