我已经看过以前的帖子,无法确保您可以将屏幕亮度恢复到用户在应用中调整之前的值(即在应用加载并重置为之前捕获屏幕的亮度级别)应用程序终止或进入后台之前的屏幕亮度)。看起来这可能是苹果公司故意做的事情,因为在用户终止时用户不会做出戏剧性的改变。但似乎苹果以某种方式推出了Passbook应用程序。请注意,当您启动Passbook应用程序时,屏幕亮度会增加,以允许扫描仪更好地读取条形码,但是当您点击主页按钮并退出Passbook应用程序时,屏幕亮度将恢复到之前的状态。如果Apple能做到这一点为什么不能呢?任何人都知道Passbook应用程序是如何做到的?
答案 0 :(得分:2)
这是一个非常简单的机制,有时会在iBooks 1.5+中引入,最后可以在iOS 5中添加+[UIScreen brightness]
API,因为它接受0.0-1.0的简单浮点数,存储它是一个明智的选择,并且可以在任何UIApplication委托方法中轻松地进行恢复。事实上,我编写了一个示例应用程序(OOH,Shiny),可以在启动时恢复屏幕亮度,并在退出时保存。
答案 1 :(得分:1)
static CGFloat s_brightness = 0.5f;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
s_brightness = [[UIScreen mainScreen] brightness];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application
{
[[UIScreen mainScreen] setBrightness:s_brightness];
}
答案 2 :(得分:0)
在Swift中
static var defaultBrightNess:CGFloat = 0.5;
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool
{
AppDelegate.defaultBrightNess = UIScreen.main.brightness;
UIScreen.main.brightness = 1.0;
return true
}
func applicationWillEnterForeground(_ application: UIApplication) {
UIScreen.main.brightness = 1.0
}
func applicationWillResignActive(_ application: UIApplication) {
UIScreen.main.brightness = CGFloat(AppDelegate.defaultBrightNess)
}