【问题标题】:Reset users default app brightness in applicationDidEnterBackground with swift使用 swift 在 applicationDidEnterBackground 中重置用户默认应用程序亮度
【发布时间】:2015-08-30 23:19:37
【问题描述】:

我一直在尝试使用以下代码在应用委托方法中重置用户的默认设备亮度:applicationDidEnterBackground

UIScreen.mainScreen().brightness = screenBrightness!

代码被调用,但亮度未重置。任何人都知道如何使用 Swift(不是 obj-c)来完成这项工作

【问题讨论】:

    标签: xcode swift appdelegate brightness screen-brightness


    【解决方案1】:

    这段代码看起来是正确的,但注意它在模拟器中不起作用,它只会在物理设备上生效。

    另外,请确保screenBrightness 的值介于 0 和 1 之间。

    您可能无法在后台更改屏幕亮度。来自 Apple 的文档:

    应用所做的亮度更改仅在应用期间保持有效 活跃。系统恢复用户提供的亮度设置 当您的应用不在前台时的适当时间。

    【讨论】:

    • 是的。在亮度设置为 0.5 的真实设备 (iPhone 6) 上尝试此操作。在 UIViewControllers 中设置时似乎可以正常工作,但在应用程序后台运行时无法在 AppDelegate 中工作。
    • 刚刚更新了我的答案,很遗憾,您将无法在后台更改亮度。
    • 嗨,汤姆。我实际上是在它被设置为背景之前尝试设置它(尝试了两个:applicationDidEnterBackground 和 applicationWillResignActive).. 但猜这可能为时已晚?
    • 无论如何,一旦您的应用进入后台,亮度设置将被重置,您在应用内设置的亮度将不会被记住。您能否准确描述您希望看到的内容?
    • 是的 - 这就是我遇到的问题。如果用户打开我的应用程序时的亮度为 0.5,然后我的应用程序将其更改为 1.0。当用户关闭应用程序时,它保持在 1.0(而不是 0.5)。所以试着自己记下 0.5,然后在应用关闭之前自己更新它。
    【解决方案2】:

    您需要更改AppDelegate 中的亮度。由于某种原因,当从通知(willResignActiveNotificationdidEnterBackgroundNotificationwillTerminateNotification)在视图控制器中触发时,它无法正常工作。不过,您可以为此使用 AppDelegate 方法:

    func applicationWillResignActive(_ application: UIApplication) {
        UIScreen.main.brightness = 0.5
    }
    

    【讨论】:

      猜你喜欢
      • 2018-12-01
      • 2012-07-21
      • 2010-10-29
      • 1970-01-01
      • 2020-05-13
      • 1970-01-01
      • 2021-04-24
      • 1970-01-01
      • 2021-06-17
      相关资源
      最近更新 更多