Ну, вы можете полностью отключить яркость. Он не блокирует экран, и устройство все еще отображается, но подсветка ЖК-дисплея почти не видна.
- (void) changeSystemBrightness: (NSString *) switchValue {
if ([[UIScreen mainScreen] respondsToSelector:@selector(setBrightness:)]) {
if (switchValue) {
if ([switchValue isEqualToString:@"saveDefault"]) {
//
self.userBrightness = [UIScreen mainScreen].brightness;
//NSLog(@"User Brightness: %1.1f", userBrightness);
} else if ([switchValue isEqualToString:@"restoreDefault"]) {
[UIScreen mainScreen].brightness = self.userBrightness;
//NSLog(@"Restore Brightness: %1.1f", userBrightness);
} else if ([switchValue isEqualToString:@"min"]) {
//[UIScreen mainScreen].brightness = 0;
} else if ([switchValue isEqualToString:@"max"]) {
[UIScreen mainScreen].brightness = 1;
} else if ([switchValue isEqualToString:@"mid"]) {
[UIScreen mainScreen].brightness = 0.5;
}
} else {
[UIScreen mainScreen].brightness = self.userBrightness;
//NSLog(@"Restore Brightness: %1.1f", userBrightness);
}
}
}
Первый сохранить уровень яркости системы пользователя
[self changeSystemBrightness:@"saveDefault"];
После этого вы можете просто выключить экран:
[self changeSystemBrightness:@"min"];
Восстановление яркости:
[self changeSystemBrightness:@"restoreDefault"];
iOS восстанавливает стандартную яркость системы после того, как экран выключен нормально (блокировка/разблокировка), поэтому вам нужно его обнаружить и обработать.
Для всех, кто читает это, во время моего комментария, метод устарел. Из документации Apple: «Устаревшие. Свойства« proximityMonitoringEnabled »и« proximityState »класса' UIDevice' являются заменами ». –