iOSで迅速にアプリケーションの画面ロックを防ぐ方法


113

ナビゲーションを使用しているときにのみ画面ロックを防ぐにはどうすればよいですか?

Wazeにはそれを行うオプションがありますが、これを私のアプリでどのように行うことができますか?

回答:


241

これを使って:

Objective-C:

[[UIApplication sharedApplication] setIdleTimerDisabled: YES];

Swift(レガシー):

UIApplication.sharedApplication().idleTimerDisabled = true

Swift 3以降:

UIApplication.shared.isIdleTimerDisabled = true

必ずインポートしてくださいUIKit

これは、apple.developer.comからのドキュメントへのリンクです。


4
SwiftはUIApplication.sharedApplication().idleTimerDisabled = true
Doug

3
スウィフト3:UIApplication.shared.idleTimerDisabled = true
funkenstrahlen 2016

2
それは次のように変わりましたUIApplication.shared.isIdleTimerDisabled = true
Lucas Farah

1
この行をどこに追加しますか?反応ネイティブを使用しているため、AppDelegate.swiftがありません
Pradnyanand Milind Pohare

@PradnyanandMilindPohare好きな場所に追加できます。この行が実行されることを確認してください
Mellao

20

Swift 3.0の場合、コードを呼び出す場所に応じて、次の2つのオプションがあります。

AppDelegate.swift内:

application.idleTimerDisabled = true

AppDelegate.swift外:

UIApplication.shared().isIdleTimerDisabled = true


2
外AppDelegate.swiftのコードは次のようにする必要があります:UIApplication.shared.isIdleTimerDisabled = false
DevStarlight

13

スウィフト4

AppDelegate.swiftファイルで、アプリケーション関数内に次の行を追加します。

    application.isIdleTimerDisabled = true

6

私の小さなlib Insomnia(Swift 3、iOS 9+)を使用できます-もう1つの優れた機能は、充電時にのみスリープしないようにすることができることです。

idleTimerDisabledsoultionは大丈夫ですが、あなたはそれを設定するために覚えておく必要がありfalse、その後。


0

より高度なケースがある場合は、小さなプロジェクトScreenSleepManagerを使用できます。または、それが特定のViewControllersだけの場合- 前に指摘したInsomniaを使用します。idleTimerDisabledほとんどの場合、手動で処理するといくつかの問題が発生しました(falseに再設定するのを忘れたり、設定しようとしている複数の(ネストされた)モジュールを処理したりするなど)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.