티스토리 뷰
728x90
반응형
UIScreen.main 이 iOS 16 에서 Deprecated 되었습니다.
대체 방안을 알아보겠습니다!
기기의 screen scale 을 얻기위해서 보통 다음의 방법을 사용합니다.
// deprecated 예정
UIScreen.main.screen.scale
// windowScene 을 활용한 접근
view.window?.windowScene?.screen.scale
// UIApplication 을 활용한 접근
private let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene
windowScene?.screen.scale
이번에는 다른 방법에 대해서 알아보려 합니다.
UITraitCollection 활용한 접근
UITraitCollection.current.displayScale
코드로 변경하였습니다. 이 장점은 UIApplication
을 통해서 접근하는 screen 의 경우 visionOS 를 지원하지 않습니다.
(출처 : https://developer.apple.com/documentation/uikit/uiwindowscene/3198089-screen)
하지만, UITraitCollection 의 displayScale 은 visionOS 를 beta 로 지원하고 있습니다.
(출처: https://developer.apple.com/documentation/uikit/uitraitcollection/1623519-displayscale)
개발자 문서를 살펴보겠습니다.
“non-Retina 디스플레이스에서는 1.0을 나타내고, Retina 디스플레이스에서는 2.0 을 나타냅니다. 기본적으로 trait collection 의 display scale 은 0.0입니다.”
하지만, scale 3.0 의 값을 가지는 시뮬레이터에서 확인을 해봐도 그렇고 Retina 디스플레이는 2.0 혹은 3.0 을 가집니다.
아마도 visionOS 베타에서 정식으로 적용되면 개발자 문서도 내용이 바뀌지 않을까 싶습니다.
바뀌게 된다면 예전 내용과 확인해보는 것도 재밌겠네요!
728x90
반응형
'iOS' 카테고리의 다른 글
댓글
TAG
- Notification
- YPImagePicker
- SwiftUI
- MVVM
- 2022 KAKAO TECH INTERNSHIP
- containerBackground
- Algorithm
- Protocol
- APNS
- UserDefaults
- watchOS
- CloneCoding
- github
- MOYA
- Swift
- WWDC22
- Widget
- WidgetKit
- 서버통신
- configurable widget
- WWDC
- async/await
- Objective-C
- IOS
- rxswift
- urlsession
- Firebase
- projectsetting
- RxCocoa
- OpenSourceLibrary
최근에 올라온 글
최근에 달린 댓글
글 보관함
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
링크
- Total
- Today
- Yesterday