【发布时间】:2010-09-23 14:56:36
【问题描述】:
我有一个用于摄影目的的 iPhone 应用程序(一种灯箱)。这个应用程序需要尽可能多的亮度。有没有办法以编程方式更改屏幕亮度,然后过一段时间再恢复?
【问题讨论】:
我有一个用于摄影目的的 iPhone 应用程序(一种灯箱)。这个应用程序需要尽可能多的亮度。有没有办法以编程方式更改屏幕亮度,然后过一段时间再恢复?
【问题讨论】:
编辑:iOS 5 现在包含screen brightness API。
[[UIScreen mainScreen] setBrightness:0.5];
上一个答案:
不,此功能不通过公共 APIS 公开。
编辑:请注意,未来可能的 iOS 版本可能会或可能不会在特定 iDevice 上的多任务栏上显示屏幕亮度。
【讨论】:
这是可能的,但您的应用很可能会被 App Store 拒绝,因为它使用私有 API。 一个手电筒应用被拒绝了,因为它调整了屏幕亮度,所以我不推荐它。
在 iOS 4.2 中,iPad 将有一个 屏幕亮度调节器 多任务栏,
(正如@coob 所提到的)所以你可以告诉你的用户在那里设置亮度。
您可以做的是创建一个黑色叠加视图,并将其 alpha 设置为或多或少,具体取决于您希望屏幕的亮度。这实际上不会使屏幕变暗/变亮,但会给用户一种错觉。
【讨论】:
这是这个问题的 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
}
}
使用调用它:
UIScreen.setMainBrightness(0.5)
或者忽略我的扩展(我只是为了说明限制而写的)并调用:
UIScreen.main.brightness = 0.5
【讨论】:
UIScreen.main.brightness = 1.0