Как программно изменить яркость экрана с помощью iPhone SDK?
Как мы можем программно изменить яркость экрана iPhone?
Ответ 1
[[UIScreen mainScreen] setBrightness: yourvalue];
Требуется iOS 5.0 или новее. yourvalue - это поплавок между 0.0 и 1.0.
Ответ 2
ОБНОВЛЕНИЕ: для Swift 3
UIScreen.main.brightness = YourBrightnessValue
Здесь быстрый ответ для выполнения этого
UIScreen.mainScreen().brightness = YourBrightnessValue
YourBrightnessValue - это поплавок между 0.0
и 1.0
Ответ 3
если вы хотите изменить яркость экрана, вы можете изменить только в ОС IOS 5 или более поздней версии.
Поместите ниже код в свое приложение.
[[UIScreen mainScreen] SetBrightness:1.0];
Отличный код для ввода кода в float.
Ответ 4
У меня возникли проблемы с изменением яркости экрана в viewDidLoad/viewWillDisappear, поэтому я создал одноэлементный класс для обработки всего действия. Вот как я это делаю:
import Foundation
import UIKit
final class ScreenBrightnessHelper {
private var timer: Timer?
private var brightness: CGFloat?
private var isBrighteningScreen = false
private var isDarkeningScreen = false
private init() { }
static let shared = ScreenBrightnessHelper()
func brightenDisplay() {
resetTimer()
isBrighteningScreen = true
if #available(iOS 10.0, *), timer == nil {
brightness = UIScreen.main.brightness
timer = Timer.scheduledTimer(withTimeInterval: 0.01, repeats: true) { (timer) in
UIScreen.main.brightness = UIScreen.main.brightness + 0.01
if UIScreen.main.brightness > 0.99 || !self.isBrighteningScreen {
self.resetTimer()
}
}
}
timer?.fire()
}
func darkenDisplay() {
resetTimer()
isDarkeningScreen = true
guard let brightness = brightness else {
return
}
if #available(iOS 10.0, *), timer == nil {
timer = Timer.scheduledTimer(withTimeInterval: 0.01, repeats: true) { (timer) in
UIScreen.main.brightness = UIScreen.main.brightness - 0.01
if UIScreen.main.brightness < brightness || !self.isDarkeningScreen {
self.resetTimer()
self.brightness = nil
}
}
timer?.fire()
}
}
private func resetTimer() {
timer?.invalidate()
timer = nil
isBrighteningScreen = false
isDarkeningScreen = false
}
}