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
- swift documentation
- Clean Code
- Xcode
- Refactoring
- ribs
- 애니메이션
- RxCocoa
- swiftUI
- UITextView
- combine
- Observable
- uitableview
- clean architecture
- SWIFT
- Human interface guide
- map
- HIG
- ios
- 리팩토링
- 리펙토링
- 스위프트
- Protocol
- UICollectionView
- 클린 코드
- collectionview
- MVVM
- uiscrollview
- rxswift
- tableView
- scrollview
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] 디스플레이 확대/축소, 화면 확대 모드 감지 방법 (더 큰 텍스트, UIScreen.main.scale, UIScreen.main.nativeScale) 본문
iOS 응용 (swift)
[iOS - swift] 디스플레이 확대/축소, 화면 확대 모드 감지 방법 (더 큰 텍스트, UIScreen.main.scale, UIScreen.main.nativeScale)
jake-kim 2025. 8. 20. 01:22더 큰 텍스트 효과란?
- 더 큰 텍스트 효과 사용 시, 시스템 전체에 영향이 가서 아래처럼 UILabel같은 컴포넌트들이 커짐
- 더 큰 텍스트 효과 적용 방법은 아래에서 설명
![]() |
![]() |
- 앱 뿐만이 아닌 시스템 앱에도 영향
![]() |
![]() |
- 설정 > 디스플레이 및 밝기 > 디스플레이 확대/축소 >



코드에서 확대/축소 감지 방법
- UIScreen.main.nativeScale 사용
- 하드웨어 디스플레이가 렌더링하는 원래 배율을 의미
- 디스플레이 확대/축소에서 확대 옵션을 켜면 3.0이 3.65625으로 나옴
- cf) 일반적으로 많이 아는 UIScreen.main.scale은 UIKit이 사용하는 기본 좌표계(points)와 실제 픽셀(pixels)의 배율을 의미
- 일반 Retina 디스플레이: scale = 2.0
- Super Retina (iPhone X 이후): scale = 3.0
- 아래와같이 UIScreen의 확장으로 구현
extension UIScreen {
static var isDisplayZoomed: Bool {
let screen = UIScreen.main
return abs(screen.nativeScale - screen.scale) > .ulpOfOne
}
}
- `ulpOfOne`은 0에 가까운 값이며 부동소수점 오차가 있을 수 있기에 이 것을 사용한 것
- 예) 3.0 - 2.9999999999999996 → 사람이 보기엔 같지만, 기계적으로는 차이가 존재
- 이런 미세한 차이를 "사실상 0" 으로 처리하기 위해 ulpOfOne 을 임계값으로 둔 것
- 차이가 ulpOfOne 이하 → 사실상 같은 값 (확대 모드 아님)
- 차이가 ulpOfOne 초과 → 의미 있는 차이 (확대 모드임)
'iOS 응용 (swift)' 카테고리의 다른 글
| [iOS - swift] 3. VScode에 깃헙 코파일럿 활용 방법 (github copilot, 지침, 프롬프트, instruction, prompt) (2) | 2025.11.12 |
|---|---|
| [iOS - swift] 1. VScode에 깃헙 코파일럿 세팅 방법 (github copilot) (0) | 2025.10.29 |
| [iOS - swift] fixedSize(horizontal:vertical:) 개념 (SwiftUI에서 자식 뷰가 그려지는 원리) (7) | 2025.06.04 |
| [iOS - swift] 제네릭과 프로토콜 적절히 사용하는 방법 (프로토콜보다 제네릭이 좋은 점) (0) | 2025.05.28 |
| [iOS - swift] 중첩 case 처리 방법 (#case where) (0) | 2025.05.14 |
Comments



