我们如何通过编程更改iPhone屏幕的亮度?
如何使用iPhone SDK以编程方式更改屏幕亮度我们如何通过编程更改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
[[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.brightnessUIScreen.mainScreen()存储原始亮度。亮度
首先,然后在以后使用此值恢复亮度。我添加了这一行[[UIScreen mainScreen]setBrightness:0.6f]代码>至视图显示
但未发生任何事情。请求当前亮度:让brillo:CGFloat=UIScreen.main.brightness