
UIWindow::setFullScreen 메서드를 사용하여 화면을 전체화면 모드로 설정할 때, 화면 크기와 관련된 문제가 발생할 수 있습니다.
iOS 11 이상에서는 화면 전체를 차지하도록 설정할 때, notch, home bar, status bar와 같은 화면의 특수한 부분을 고려해야 합니다.
화면 크기를 설정하는 방법은 다음과 같습니다.
1. 화면의 notch, home bar, status bar를 고려하여 화면의 크기를 계산합니다.
2. UIWindow의 frame 속성을 설정하여 화면의 크기를 설정합니다.
3. UIWindow의 rootViewController의 view의 frame 속성을 설정하여 화면의 크기를 설정합니다.
예를 들어, notch가 있는 iPhone 12의 경우, 화면의 크기는 다음과 같습니다.
- notch의 크기: 44pt
- home bar의 크기: 49pt
- status bar의 크기: 44pt
화면의 전체 크기는 375pt x 812pt입니다.
UIWindow의 frame 속성을 설정하는 예제는 다음과 같습니다.
#hostingforum.kr
swift
let window = UIWindow(frame: UIScreen.main.bounds.inset(by: UIEdgeInsets(top: 44, left: 0, bottom: 49, right: 0)))
UIWindow의 rootViewController의 view의 frame 속성을 설정하는 예제는 다음과 같습니다.
#hostingforum.kr
swift
let viewController = UIViewController()
viewController.view.frame = UIScreen.main.bounds.inset(by: UIEdgeInsets(top: 44, left: 0, bottom: 49, right: 0))
이러한 방법으로 화면의 크기를 설정하여 UIWindow::setFullScreen 메서드를 사용하여 화면을 전체화면 모드로 설정할 수 있습니다.
2025-03-19 13:28