rudin_.log
로그인
rudin_.log
로그인
[iOS] Constraint - CH, CR
RudinP
·
2024년 2월 16일
팔로우
0
AutoLayout
iOS
스터디
0
Study
목록 보기
161/227
1~1000의 우선순위를 가지며, 제약의 우선순위와는 별도의 관계이다.
Intrinsic Size를 기반하여 배치할때 영향을 준다.
크기가 고정되어 있는 경우 사용 X, 크기가 고정되지 않은 뷰가 수평이나 수직으로 나란히 배치되어 있을 때만 작용
두 뷰 중 하나만 원래 크기(Intrinsic size)로 표시하고, 나머지 뷰는 크기를 키우거나 줄여 배치하는데 이 때 CH, CR이 사용된다.
Content Hugging Priority(CH)
확장에 대한 저항력(너비를 다 채우지 못할 때)
원래 크기보다 더 커지지 않으려는 저항력(확장에 대한 저항력)
기본 값이 250이다.
만약 두 뷰 모두 CH Priority가 값이 같은 경우 제약 에러가 발생한다.
값이 더 낮은 뷰가 Intrinsic Size보다 커진다.
= 값이 높으면 Intrinsic Size 유지
전체 너비를 채우고자 한 뷰를 키울 때 확인
Content Compression Resistance Priority(CR)
축소에 대한 저항력(너비가 부족할 때)
원래 크기보다 더 작아지지 않으려는 저항력(축소에 대한 저항력_
기본 값이 750이다.
만약 두 뷰 모두 CH Priority가 값이 같은 경우 제약 에러가 발생한다.
값이 더 낮은 뷰가 Intrinsic Size보다 작아진다.
= 값이 높으면 Intrinsic Size 유지
전체 너비에 맞춰 한 뷰를 줄이고자 할 때 확인
실습
CH
Hello Label에는 leading, top, trailing을, Hi Label에는 top, trailing 제약을 준 상태.
이 상태에서는 둘 모두 CH Priority가 같으므로 제약 에러 발생
레이블은 251이 Priority 기본 값인데, 이는 다른 뷰랑 나란히 배치했을 때 레이블이 원래 크기를 유지하도록 하려는 의도 때문.
왼쪽의 레이블을 250으로 CH Priority를 바꿀 경우 저항력이 낮아진 Hello 레이블이 커진다.
CR
마찬가지로 CR Priority가 같으므로 제약 에러가 발생
왼쪽 레이블의 CR Priority를 낮췄으므로, 너비가 축소되었고 오른쪽 레이블이 모두 표시됨.
RudinP
곰을 좋아합니다. <a href = "https://github.com/RudinP">github</a>
팔로우
이전 포스트
[iOS] Constraint - Intrinsic Content Size
다음 포스트
[iOS] Constraint - Stack View
0개의 댓글
댓글 작성