일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MVVM
- 기초문법
- 스트럭트
- struct
- Kingfisher
- 토이프로젝트
- 반응형
- 앱개발
- 네트워크
- SwiftUI
- GCD
- 실습
- ios
- 학과별커뮤니티
- 대표
- 구름톤 유니브
- swift
- 세종대학교
- mvc
- RxSwift
- CS
- 이론
- 프로토콜
- async
- WeatherKit
- uikit
- 동시성
- Optional
- collectionview
- 옵셔널
- Today
- Total
스윞한 개발자
Content Hugging Priority, Content Compression Resistance Priority🥇🥈🥉 본문
Content Hugging Priority, Content Compression Resistance Priority🥇🥈🥉
스윞남 2025. 1. 12. 20:30안녕하세요!
이번 포스팅에서는 AutoLayout의 우선순위! Content Hugging Priority, Content Compression Resistance Priority에 대해 공부하고 정리해 보려고 합니다.

Content Hugging Priority, Content Compression Resistance Priority에 대해 접근하기 전에 알아야 할 개념들에 대해 정리해 보겠습니다.
#AutoLayout Priority
Content Hugging Priority, Content Compression Resistance Priority은 iOS의 AutoLayout의 우선순위입니다.
오토레이아웃에서 뷰의 크기를 어떻게 결정할지에 영향을 주는 제약 조건 우선순위입니다! 요즘, 처음으로 돌아가 스토리보드의 공부를 하고 있어 인터페이스 빌더의 사이즈 인스펙터를 통해 이 우선순위를 주는 방법을 알게 되어 공부하고 정리해 보았습니다. 물론! 코드로도 우선순위를 줄 수 있습니다. (* 위의 숫자는 의미 없는 숫자이며, 두 숫자 중 우선순위를 나타내기 위함으로 사용되는 숫자입니다.)
label.setContentHuggingPriority(.defaultHigh, for: .horizontal)
label.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
# Intrinsic Content Size
뷰의 자체 콘텐츠 크기를 말합니다. 많이 사용하는 width, height 값을 가리킵니다. 레이블의 고유 콘텐츠 크기는 레이블의 텍스트 크기이며, 이미지의 고유한 콘텐츠 크기는 이미지 자체 사이즈입니다.
이 우선순위라 함은 말 그대로, 우선도가 높으면 다른 제약 조건보다 우선적으로 적용되며 다른 제약에 비해 우선도가 낮을 경우에는 이 제약 조건이 무시되는(후순위) 것을 말합니다.
# 1. Content Hugging Priority
뷰가 자신의 콘텐츠에 더 가까이 붙으려는 성향을 나타냅니다.
즉, 가로로 있는 두 레이블인 경우에 이 우선순위가 더 큰 경우에는 자신의 크기를 유지하려고 합니다. Intrinsic Content Size 보다 커지지 않도록 제한하는 우선도입니다. => 해당 뷰가 커지지 않도록 한다! 주어진 크기보다 작아질 수 있다!
# 2. Content Compression Resistance Priority
뷰가 자신의 콘텐츠 크기에서 압축되지 않으려고 하는 성향을 나타냅니다. 즉, 허깅과 다르게 뷰를 압축하지 마!라고 말하는 우선순위입니다.
두 개의 레이블이 가로로 배치되어 있을 때, 긴 텍스트를 가진 레이블이 텍스트를 잘리지 않도록 더 많은 공간을 확보하려고 합니다.
즉, 정리하자면
크기를 키우는 상황 크기를 줄이는 상황
Content Hugging | 자신의 크기를 유지하려고 노력 | 무관 |
Compression Resistance | 무관 | 콘텐츠가 잘리지 않도록 유지하려고 노력 |
여러 뷰가 동일한 제약 조건의 우선순위를 가지는 경우에는 미리 설정해 둔 오토레이아웃이 충돌할 수 도 있기 때문에! 각 콘텐츠의 우선순위를 잘 설정해야 할 듯합니다!
더 유익한 글로 찾아뵙겠습니다. 감사합니다!

'Swift 이론' 카테고리의 다른 글
Swift Concurrency(with GCD) (0) | 2025.01.23 |
---|---|
뷰 드로잉 사이클 - View Drawing Cycle (0) | 2025.01.20 |
이미지 렌더링 + 캐싱/UIGraphicsImageRenderer (0) | 2025.01.12 |
Image Cache에 대한 고찰 💭 (0) | 2025.01.09 |
코드 사이닝? 프로비저닝 프로파일? 🤔 (0) | 2025.01.05 |