Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们如何通过编程更改iPhone屏幕的亮度?_Iphone_Objective C_Ios_Cocoa Touch_Ios5 - Fatal编程技术网

我们如何通过编程更改iPhone屏幕的亮度?

我们如何通过编程更改iPhone屏幕的亮度?,iphone,objective-c,ios,cocoa-touch,ios5,Iphone,Objective C,Ios,Cocoa Touch,Ios5,如何使用iPhone SDK以编程方式更改屏幕亮度 [[UIScreen mainScreen] setBrightness: yourvalue]; 需要iOS 5.0或更高版本。您的值是介于0.0和1.0之间的浮点值。更新:对于Swift 3 UIScreen.main.brightness = YourBrightnessValue 下面是执行此操作的快速答案 UIScreen.mainScreen().brightness = YourBrightnessValue YourBri

如何使用iPhone SDK以编程方式更改屏幕亮度

[[UIScreen mainScreen] setBrightness: yourvalue];

需要iOS 5.0或更高版本。您的值是介于0.0和1.0之间的浮点值。

更新:对于Swift 3

UIScreen.main.brightness = YourBrightnessValue
下面是执行此操作的快速答案

UIScreen.mainScreen().brightness = YourBrightnessValue

YourBrightnessValue是介于
0.0
1.0

之间的浮点值。我在ViewDiLoad/ViewWillEnglishe中更改屏幕亮度时遇到一些问题,因此我创建了一个singleton类来处理所有操作。我就是这样做的:

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
    }
}
<代码>导入基础 导入UIKit 最终类ScreenBrightnessHelper{ 私有变量计时器:计时器? 专用var亮度:CGFloat? 私有变量IsBrightingScreen=false 专用var IsDarkingScreen=false 私有init(){} 静态let shared=ScreenBrightnessHelper() func显示(){ 重置计时器() IsBrightingScreen=true 如果#可用(iOS 10.0,*),计时器==nil{ 亮度=UIScreen.main.brightness timer=timer.scheduledTimer(withTimeInterval:0.01,repeats:true){(timer)in UIScreen.main.brightness=UIScreen.main.brightness+0.01 如果UIScreen.main.brightness>0.99 | | |!self.isbrightingscreen{ self.resetTimer() } } } 计时器?.fire() } func darkenDisplay(){ 重置计时器() IsDarkingScreen=true 防护灯亮度=其他亮度{ 返回 } 如果#可用(iOS 10.0,*),计时器==nil{ timer=timer.scheduledTimer(withTimeInterval:0.01,repeats:true){(timer)in UIScreen.main.brightness=UIScreen.main.brightness-0.01 如果UIScreen.main.brightness鉴于这是官方SDK的一部分,我建议您检查一下源代码。很高兴我能帮忙。如果这是你想要的答案,你可以接受:)这不会让你被踢出应用商店吗?这是一个完全合法的API调用。我看不出它有任何问题的原因。@Robse您可以使用
UIScreen.mainScreen()存储原始亮度。亮度
首先,然后在以后使用此值恢复亮度。我添加了这一行
[[UIScreen mainScreen]setBrightness:0.6f]
视图显示
但未发生任何事情。请求当前亮度:让brillo:CGFloat=UIScreen.main.brightness