web-dev-qa-db-ja.com

SwiftでIOSを使用してアプリケーションの画面ロックを防ぐ方法

ナビゲーションを使用している場合にのみ画面ロックを防ぐにはどうすればよいですか。 Wazeにはそれを行うオプションがありますが、アプリでこれを行うにはどうすればよいですか?

97
alvarogalia

これを使って:

Objective-C:

[[UIApplication sharedApplication] setIdleTimerDisabled: YES];

Swift(レガシー):

UIApplication.sharedApplication().idleTimerDisabled = true

Swift 3/4:

UIApplication.shared.isIdleTimerDisabled = true

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

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

208
atwalsh

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

AppDelegate.Swift内:

application.idleTimerDisabled = true

AppDelegate.Swiftの外部:

UIApplication.shared().isIdleTimerDisabled = true

17
Crashalot

スイフト4

appDelegate.Swiftファイルで、application function内に次の行を追加します。

    application.isIdleTimerDisabled = true
10
kavehmb

私の小さなlib Insomnia (Swift 3、iOS 9以降)を使用できます-もう1つの素晴らしい機能は、充電中にのみスリープを防止できることです。

idleTimerDisabledのsoultionは大丈夫ですが、後でfalseに設定することを忘れないでください。

4
nsmeme

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

0
Dev_IL