【Swift UI】アプリ起動中に画面のスリープさせない方法!
この記事からわかること
- SwiftUIでアプリ起動中に画面がスリープモードにならないようにする方法
- UIApplicationクラスとisIdleTimerDisabledプロパティの使い方
index
[open]
\ アプリをリリースしました /
友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-
posted withアプリーチ
iOSアプリ開発をしている際に特定の画面を表示している際に端末のスリープモードが実行されないようにする方法をまとめました。
アプリ起動中に画面のスリープさせない方法
アプリ起動中に端末の画面がスリープしてしまうのを防ぐにはUIApplication
クラスのisIdleTimerDisabled
プロパティにtrue
を渡せばOKです。また注意点としてアプリの画面が閉じられた時や遷移した時にスリープするようにfalse
を設定する必要があります。
おすすめ記事:【Swift】UIApplicationとは?使い方とプロパティやメソッド
例えばアプリ全体が起動中に画面が暗くならないようにするにはAppDelegate
クラスのapplication(:didFinishLaunchingWithOptions)
から設定をします。
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
UIApplication.shared.isIdleTimerDisabled = true
return true
}
func applicationWillTerminate(_ application: UIApplication) {
UIApplication.shared.isIdleTimerDisabled = false
}
}
おすすめ記事:【SwiftUI】App Delegateとは?実装方法と使い方
特定の画面のみスリープさせたくない場合はonAppear
とonDisappear
に以下のように記述することで実装することが可能です。
.onAppear{
UIApplication.shared.isIdleTimerDisabled = true
}.onDisappear{
UIApplication.shared.isIdleTimerDisabled = false
}
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。