カウントダウンが終了するまで起きている必要があるアプリがありますが、割り当てられたスリープ時間に達すると「スリープモード」になります。
私のアプリでは、ユーザーがスリープを無効または有効にできるように、スリープを延期するオプションがあります。
プログラムでそれをどのように行うのですか?
カウントダウンが終了するまで起きている必要があるアプリがありますが、割り当てられたスリープ時間に達すると「スリープモード」になります。
私のアプリでは、ユーザーがスリープを無効または有効にできるように、スリープを延期するオプションがあります。
プログラムでそれをどのように行うのですか?
回答:
次のようにアイドルタイマーを無効にできます。
Objective-Cの場合:
[UIApplication sharedApplication].idleTimerDisabled = YES;
Swiftの場合:
UIApplication.sharedApplication().idleTimerDisabled = true
Swift 3.0およびSwift 4.0の場合:
UIApplication.shared.isIdleTimerDisabled = true
スリープモードに戻すNOかfalse、スリープモードを再度有効にします。
たとえば、ビューを終了するまで必要な場合は、viewWillDisappearをオーバーライドすることで設定を戻すことができます。
override func viewWillDisappear(_ animated: Bool) {
UIApplication.shared.isIdleTimerDisabled = false
}
[UIApplication sharedApplication]参照します。
アイドルタイマーを無効にするiOS 13、Swift 5,5.1以降。でSceneDelegate.swift。
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
UIApplication.shared.isIdleTimerDisabled = true
}
Swift 3では、これを実行できる正確な場所は-func 内にAppDelegate.swift追加する必要があるため、結果は次のようになります。UIApplication.shared.isIdleTimerDisabled = trueapplication
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
UIApplication.shared.isIdleTimerDisabled = true
return true
}