iOS에서 Swift로 내 애플리케이션의 화면 잠금을 방지하는 방법


113

내비게이션을 사용할 때만 화면 잠금을 방지하려면 어떻게해야합니까?

Waze에는 그렇게 할 수있는 옵션이 있습니다. 내 앱에서 어떻게 할 수 있습니까?

답변:


241

이것을 사용하십시오 :

목표 -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

2
변경되었습니다UIApplication.shared.isIdleTimerDisabled = true
Lucas Farah

1
이 줄을 어디에 추가할까요? 내가 react-native를 사용하고 있기 때문에 AppDelegate.swift가 없습니다
Pradnyanand Milind Pohare

@PradnyanandMilindPohare 원하는 곳에 추가 할 수 있습니다.이 줄이 실행되는지 확인하세요
Mellao

20

Swift 3.0의 경우 코드를 호출하려는 위치에 따라 두 가지 옵션이 있습니다.

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

My little lib Insomnia (Swift 3, iOS 9+)를 사용할 수 있습니다. 또 다른 좋은 기능은 충전 할 때만 수면을 방지 할 수 있다는 것입니다.

idleTimerDisabledsoultion 괜찮습니다하지만 당신은 그것을 설정 기억해야 false나중에.


0

고급 사례가있는 경우 작은 프로젝트 인 ScreenSleepManager를 사용할 수 있습니다. 또는 특정 ViewController 에 관한 것이라면 앞서 언급 한대로 Insomnia 를 사용 하세요. 수동으로 처리하면 idleTimerDisabled거의 항상 몇 가지 문제가 발생했습니다 (예 : false로 재설정하거나 설정하려는 여러 (중첩 된) 모듈을 처리하는 것을 잊음).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.