Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 리펙터링
- uiscrollview
- ios
- clean architecture
- Observable
- Refactoring
- combine
- collectionview
- RxCocoa
- rxswift
- UICollectionView
- tableView
- swiftUI
- swift documentation
- SWIFT
- 클린 코드
- MVVM
- map
- Human interface guide
- Xcode
- HIG
- 리펙토링
- ribs
- UITextView
- 스위프트
- Protocol
- 애니메이션
- uitableview
- Clean Code
- 리팩토링
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] safeArea 크기 구하는 방법(#'keyWindow' was deprecated in iOS 13.0, #safeAreaInsets) 본문
iOS 응용 (swift)
[iOS - swift] safeArea 크기 구하는 방법(#'keyWindow' was deprecated in iOS 13.0, #safeAreaInsets)
jake-kim 2024. 4. 8. 01:21safe area 경고 표출
- 보통 아래처럼 keyWindow로 구하면 warning 문구가 표출
// 'keyWindow' was deprecated in iOS 13.0: Should not be used for applications that support multiple scenes as it returns a key window across all connected scenes
let window = UIApplication.shared.keyWindow
let safeAreaInsets = window?.safeAreaInsets
- iOS 13부터 Scene이라는 개념이 생겼는데, 이 scene에 접근해서 window를 가져와야함
safeAreaInset 구하는 방법
- connectedScenes에 접근하여 첫번째 scene 가져오기
let connectedScene = UIApplication.shared.connectedScenes.first
- UIWindowScene으로 캐스팅
let windowScene = connectedScene as? UIWindowScene
- 첫번째 window 가져오기
let window = windowScene?.windows.first
- safeAreaInset 획득
let safeAreaInset = window?.safeAreaInsets ?? .zero
print(safeAreaInset) // UIEdgeInsets(top: 59.0, left: 0.0, bottom: 34.0, right: 0.0)
- 고차함수를 사용하여 표현
let safeAreaInset = UIApplication.shared.connectedScenes.first
.flatMap { ($0 as? UIWindowScene)?.windows.first }?
.flatMap { $0.safeAreaInsets }
'iOS 응용 (swift)' 카테고리의 다른 글
Comments