Сделайте экран 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 и не должен использоваться, хотя...
Ответы
Ответ 1
Начиная с iOS 5 в классе UIScreen
имеется открытый API. Он имеет свойство brightness
, которое может быть установлено. Для тех случаев, когда вы можете пойти более тусклым, чем позволяет фактическая подсветка, существует свойство wantsSoftwareDimming
, которое автоматически разместит полупрозрачный слой, который будет казаться более тусклым, чем это можно сделать на аппаратном уровне. Это очень похоже на метод, с которым вы столкнулись с полупрозрачным UIView
. Следует отметить, что использование вашего решения или программного обеспечения dimming API не должно использоваться со многими анимациями, так как вы будете платить штраф за производительность со всем альфа-смешиванием.
См. Справочник по классу UIScreen
Ответ 2
в iOS 7 и более поздних версиях:
yourViewController.view.tintAdjustmentMode = UIViewTintAdjustmentModeDimmed;