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
- swiftUI
- Refactoring
- SWIFT
- map
- Xcode
- tableView
- 리펙토링
- 클린 코드
- UITextView
- ios
- clean architecture
- RxCocoa
- swift documentation
- UICollectionView
- 리팩토링
- scrollview
- collectionview
- 스위프트
- ribs
- 애니메이션
- combine
- uiscrollview
- uitableview
- Human interface guide
- HIG
- rxswift
- MVVM
- Clean Code
- Observable
- Protocol
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