сброс яркости после выхода из приложения

Мой код:

-(IBAction)changeSlider:(id)sender {

    [[UIScreen mainScreen] setBrightness:slider.value];

    NSString *string = [[NSString alloc] initWithFormat:@"%.1f", slider.value];
    label.text = string;

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


person user1883396    schedule 11.12.2012    source источник


Ответы (1)


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

- (void)applicationDidEnterBackground:(UIApplication *)application
{
  [[UIScreen mainScreen] setBrightness:originalBrightness];

}
person MweyaMutsvene    schedule 11.12.2012
comment
Сохраните яркость в applicationDidBecomeActive:. Нет причин, по которым это не сработает! - person rdurand; 11.12.2012
comment
originalBrightness не является целым числом, поэтому выдает ошибку. Когда я пытаюсь поместить код в applicationDidBecomeActive, он работает, только если вы перезапустите приложение, а не когда я нажимаю кнопку «Домой» :( - person user1883396; 11.12.2012
comment
applicationWillEnterForeground было бы лучшим местом для его размещения. - person MweyaMutsvene; 11.12.2012
comment
@rdurи причина в системной ошибке. Он работает только при переключении между приложениями, а не при нажатии кнопки «Домой». Кроме того, система должна сама вернуться к яркости по умолчанию. Мой совет — вообще не устанавливать яркость. - person Sulthan; 11.12.2012
comment
Если это системная ошибка, то почему в сберкнижке есть эта функция? - person user1883396; 11.12.2012
comment
Султан прав, только что проверил себя, и это похоже на системную ошибку — хотя похоже, что Apple, вероятно, не исправит ее в ближайшее время. Я бы предложил создать наложение и изменить его альфа-свойство вместо использования setBrightness. - person MweyaMutsvene; 12.12.2012