有没有办法以编程方式调整屏幕亮度?

ope*_*rog 39 iphone ios

我有一个用于摄影目的的iPhone应用程序(一种灯箱).这个应用程序需要尽可能多的亮度.有没有办法以编程方式更改屏幕亮度,然后在一段时间后恢复它?

Ala*_*art 77

编辑:iOS 5现在包含一个屏幕亮度API.

[[UIScreen mainScreen] setBrightness:0.5];
Run Code Online (Sandbox Code Playgroud)

上一个答案:

不,此功能不会通过公共APIS公开.

编辑:请注意,未来可能的iOS版本可能会或可能不会在一个特定的iDevice上的多任务栏上显示屏幕亮度.

  • 感谢你一年后回到你的答案并更新它:) (9认同)
  • 他们正在调整文本背景的颜色,而不是实际的屏幕亮度. (5认同)

Emi*_*mil 5

这是可能的,但您的应用很可能会被App Store拒绝,因为它使用私有API.手电筒应用被拒绝,因为它调整了屏幕亮度,所以我不推荐它.

在iOS 4.2中,iPad将在多任务处理中使用屏幕亮度调节器,

(正如@coob所提到的)所以你可以告诉你的用户在那里设置亮度.


您可以做的是创建一个黑色叠加视图,并根据您想要的屏幕亮度将其设置为或多或少.这实际上不会使屏幕变得更亮/更亮,但它会给用户一种错觉.

  • 注意:这个答案现在已经过时了;自 iOS 5 以来有一个公共 API。 (3认同)

Gle*_*wes 5

这是Swift对这个问题的回答.

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
    }
}
Run Code Online (Sandbox Code Playgroud)

使用以下方式调用它:

UIScreen.setMainBrightness(0.5)
Run Code Online (Sandbox Code Playgroud)

或者忽略我的扩展(我刚才写的用来说明限制)并且只是调用:

UIScreen.main.brightness = 0.5
Run Code Online (Sandbox Code Playgroud)