У меня есть приложение для iPhone для фотографических целей (вид лайтбокса). Это приложение требует как можно большего количества яркости. Есть ли способ программно изменить яркость экрана, а затем восстановить его через некоторое время?
Можно ли программно настроить яркость экрана?
Ответ 1
Изменить: iOS 5 теперь включает в себя API яркости экрана.
[[UIScreen mainScreen] setBrightness:0.5];
Предыдущий ответ:
Нет, эта возможность не открывается через публичный APIS.
Изменить: обратите внимание, что в будущей возможной версии iOS может быть или не быть яркость экрана на панели многозадачности на одном конкретном iDevice.
Ответ 2
Возможно, но ваше приложение скорее всего будет отвергнуто из App Store, потому что оно использует частный API. Приложение-фонарик было отклонено, поскольку оно регулировало яркость экрана, поэтому я бы не рекомендовал его.
В iOS 4.2 iPad будет иметь яркость экрана в многозадачный-бар,
(как упоминалось @coob), чтобы вы могли указать своим пользователям, чтобы установить яркость там.
Что вы можете сделать, это создать черный оверлей-просмотр и установить его альфа в большей или меньшей степени в соответствии с тем, насколько ярким вы хотите, чтобы экран был. Это на самом деле не сделает экран менее ярким, но это даст пользователю иллюзию этого.
Ответ 3
Вот быстрый ответ на этот вопрос.
import UIKit
extension UIScreen
{
static func setMainBrightness(brightness: CGFloat)
{
guard (0...1).contains(brightness) else
{
print("Attempt to set the screen brightness to an invalid value: \(brightness) should be between 0 and 1 inclusive.")
return
}
self.main.brightness = brightness
}
}
Вызвать его, используя:
UIScreen.setMainBrightness(0.5)
Или проигнорируйте мое расширение (которое я только что написал, чтобы проиллюстрировать ограничения) и просто позвоните:
UIScreen.main.brightness = 0.5