Как мы можем программно изменить яркость экрана iPhone? - PullRequest
18 голосов
/ 20 января 2012

Как программно изменить яркость экрана с помощью iPhone SDK?

Ответы [ 3 ]

48 голосов
/ 20 января 2012
[[UIScreen mainScreen] setBrightness: yourvalue];

Требуется iOS 5.0 или более поздняя версия. yourvalue - это число от 0.0 до 1.0.

11 голосов
/ 20 июня 2016

ОБНОВЛЕНИЕ : для Swift 3

UIScreen.main.brightness = YourBrightnessValue

Вот быстрый ответ для выполнения этого

UIScreen.mainScreen().brightness = YourBrightnessValue

YourBrightnessValue - это число с плавающей запятой между 0.0 и 1.0

1 голос
/ 02 октября 2017

У меня были некоторые проблемы с изменением яркости экрана в 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
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...