Подтвердить что ты не робот

Сделайте экран iPhone Dim

Мне удалось убедиться, что iPhone не автоблокируется с помощью:

    [[ UIApplication sharedApplication ] setIdleTimerDisabled: YES ];

Но как заставить экран сглаживаться через определенное время?

Спасибо...

EDIT:

Думаю, я нашел решение самостоятельно:

Используйте этот метод в своем контроллере просмотра, чтобы уменьшить его, добавив черный вид с 50% альфа. Убедитесь, что userInteractionEnabled = NO передал события в базовые представления.

- (IBAction)dim:(id)sender {
UIView *dimView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
dimView.backgroundColor = [UIColor blackColor];
dimView.alpha = 0.5f;
dimView.userInteractionEnabled = NO;
[self.view addSubview:dimView];
}

или, может рисковать (но Apple может отклонить при отправке):

[(id)[UIApplication sharedApplication] setBacklightLevel:1.0f];

Это частный API и не должен использоваться, хотя...

4b9b3361

Ответ 1

Начиная с iOS 5 в классе UIScreen имеется открытый API. Он имеет свойство brightness, которое может быть установлено. Для тех случаев, когда вы можете пойти более тусклым, чем позволяет фактическая подсветка, существует свойство wantsSoftwareDimming, которое автоматически разместит полупрозрачный слой, который будет казаться более тусклым, чем это можно сделать на аппаратном уровне. Это очень похоже на метод, с которым вы столкнулись с полупрозрачным UIView. Следует отметить, что использование вашего решения или программного обеспечения dimming API не должно использоваться со многими анимациями, так как вы будете платить штраф за производительность со всем альфа-смешиванием.

См. Справочник по классу UIScreen

Ответ 2

в iOS 7 и более поздних версиях:

yourViewController.view.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;