Computer >> 컴퓨터 >  >> 프로그래밍 >> iOS

iOS에서 화면 자동 꺼짐(잠자기 모드) 방지하는 방법 - Swift 코드 예시

iOS 앱을 개발하다 보면 동영상 재생, 전자책 읽기, 게임 등 화면이 항상 켜져 있어야 하는 상황이 있습니다. 이번 포스트에서는 Swift 코드 한 줄로 iOS 기기의 화면이 자동으로 잠자기 상태에 들어가지 않도록 설정하는 방법을 알아보겠습니다.

isIdleTimerDisabled 속성 사용하기

iOS에서 화면 자동 잠금은 UIApplication 객체의 isIdleTimerDisabled 속성으로 제어할 수 있습니다. 이 값을 true로 설정하면 시스템의 유휴 타이머(idle timer)가 비활성화되어 화면이 자동으로 꺼지지 않습니다.

구현 방법

ViewController.swift 파일의 viewDidLoad() 메서드에 아래 코드를 추가합니다.

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    UIApplication.shared.isIdleTimerDisabled = true
}

실행 결과

앱을 빌드하고 실행하면, 해당 뷰 컨트롤러가 활성화되어 있는 동안 화면이 절대 잠자기 모드로 전환되지 않습니다. 사용자가 아무런 조작을 하지 않아도 화면이 계속 켜진 상태로 유지됩니다.

주의사항

화면이 항상 켜져 있으면 배터리 소모가 크게 증가합니다. 따라서 이 기능은 정말 필요한 경우에만 사용하는 것이 좋습니다.

  • 적합한 경우: 영상 플레이어, 전자책 리더, 요리 레시피 앱, 내비게이션 등
  • 권장하지 않는 경우: 일반적인 목록 조회나 폼 입력 화면처럼 유휴 상태가 길어질 수 있는 UI

또한 뷰가 사라질 때 원래 상태로 되돌려주는 것이 좋습니다. 예를 들어 viewWillDisappear 또는 deinit에서 다음과 같이 설정을 해제할 수 있습니다.

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    UIApplication.shared.isIdleTimerDisabled = false
}

이렇게 하면 해당 화면을 벗어난 후에는 시스템 기본 동작(자동 잠금)이 정상적으로 복원됩니다.