如何在IOS上使用swift防止我的应用程序上的屏幕锁定

时间:2015-02-04 18:55:34

标签: ios swift locking screen

如何仅在使用导航时阻止屏幕锁定。 Waze可以选择这样做,我怎么能在我的App中做到这一点?

5 个答案:

答案 0 :(得分:200)

使用此:

<强>目标-C:

[[UIApplication sharedApplication] setIdleTimerDisabled: YES];

Swift(遗产):

UIApplication.sharedApplication().idleTimerDisabled = true

Swift 3/4:

UIApplication.shared.isIdleTimerDisabled = true

确保导入UIKit

Here是apple.developer.com文档的链接。

答案 1 :(得分:17)

对于Swift 3.0,这里有两个选项,具体取决于您想要调用代码的位置:

内部AppDelegate.swift:

application.idleTimerDisabled = true

外部AppDelegate.swift:

UIApplication.shared().isIdleTimerDisabled = true

答案 2 :(得分:9)

Swift 4

在AppDelegate.swift文件中,在应用程序功能中添加以下行:

    application.isIdleTimerDisabled = true

答案 3 :(得分:4)

你可以使用我的小lib Insomnia(Swift 3,iOS 9+) - 另一个不错的功能是你可以防止只在充电时睡觉。

idleTimerDisabled灵魂是可以的,但你必须记得事后将它设置为false

答案 4 :(得分:0)

如果您有更高级的案例,则可以使用我们的小型项目:ScreenSleepManager,或者仅用于特定的 ViewControllers -如前所述使用Insomnia。手动处理idleTimerDisabled几乎总是导致我遇到一些问题(例如忘记重新设置为false或处理多个试图对其进行设置的(嵌套)模块)。