2014-09-29 3 views
0

Это то, что я делаю в этом приложении iO7 или более поздней версии:Является ли [UIScreen mainScreen] .brightness Ключевое значение доступно?

Когда пользователь открывает мое приложение, я хочу получить значение яркости экрана и полностью увеличить яркость экрана. Когда пользователь покидает приложение, я хочу, чтобы яркость возвращалась к предыдущему значению.

До сих пор я использую это:

-(void) applicationWillResignActive 
{ 
    [[UIScreen mainScreen] setBrightness:oldScreenBrightness]; 
} 

-(void) applicationDidBecomeActive 
{ 
    screenBrightness = [UIScreen mainScreen].brightness; 
    [[UIScreen mainScreen] setBrightness:1.0]; 
} 

Это работает отлично, за исключением того, если пользователь регулирует яркость с помощью Центра управления при использовании приложения, он все равно будет возвращаться к старой яркости при выходе из приложения когда это не должно.

Так мне было интересно, если я могу наблюдать Key Value [UIScreen В начало] .Brightness и проверить, если он изменен пользователем, чтобы опустить его изменения обратно в старое значение ....

+0

Вы попробовали? Сначала попробовать это быстрее, чем задавать вопрос и ждать ответа. – rmaddy

+0

Существует также уведомление 'UIScreenBrightnessDidChangeNotification'. Дайте это выстрел. – rmaddy

ответ

1

Я думаю, что вы «Это слишком сложно. Выйдите из системы, проверьте текущий уровень яркости. Если это 1.0, переключите его обратно на все, что вы получили, когда вы начали. Если это ничего, кроме 1.0, вы можете чувствовать себя уверенно, что пользователь изменил его на что-то еще, поэтому ничего не делайте.

Возможно, лучше всего создать какую-то постоянную яркость экрана, чтобы сделать код более читаемым, а намерение - четким.

static const CGFloat kAppConfiguredBrightness = (CGFloat)1.; 

-(void)applicationWillResignActive 
{ 
    UIScreen* screen = [UIScreen mainScreen]; 
    if (screen.brightness == kAppConfigredBrightness) { 
    screen.brightness = oldScreenBrightness; 
    } 
} 
+0

Работы. Спасибо! – Gizmodo

2

Согласно документации разработчика Apple: изменения

яркости, сделанные с помощью приложения остаются в силе только тогда, когда приложение активно. Система восстанавливает настроенную пользователем настройку яркости в соответствующее время, когда ваше приложение не находится на переднем плане. Поэтому, если вы измените значение этого свойства, вам не нужно записывать предыдущее значение и восстанавливать его, когда ваше приложение перемещается на задний план.