-
AutoLayout] 우선순위 설정 1Programming/iOS 2020. 3. 12. 16:24
iOS 프로젝트를 시작하면서, 헷갈렸던 우선순위에 대한 내용을 다시 살펴보고 정리해 보았다.
UI 마스터가 되기위해 우선순위도 마스터 해보자 😎
기본적으로, 우선순위 값이 높을 수록, 그 제약조건은 우선적용 된다. (Max 1000)
Content Hugging Priority
오브젝트가 가지고 있는 컨텐츠 크기값을 그대로 유지할 수 있을지에 대한 우선순위
A, B Label 모두 251 로 우선순위가 같다. Label 두개를 선택해, top, leading, trailing 값을 20 으로 동일하게 주면, 위와 같은 에러를 확인 할 수 있다.
에러 메시지를 보면, 둘 모두 우선순위가 같으니 어느 한쪽에 hugging priority 값을 251 보다 높은 252 로 높여 달라고 한다.
Label A 에 Hugging priority 값을 252 로 변경해 주니, 에러 메시지는 사라지고
"Label_A" 내용크기만큼 사이즈가 fit 된것을 볼 수 있다.
그리고, 우선순위가 낮은 Label_B 는 컨텐츠 크기보다 늘어나게 된다.
Content Compression Resistance Priority
근처의 다른 오브젝트때문에 내 크기가 찌그러질때, 내 크기를 유지하기 위한 우선순위
이 우선순위에서 중요한 점은, 나를 찌그러지게 할만한 오브젝트가 주변에 있을때 설정하는 값이라는 것이다.
TitleLabel 이 다른 Label 을 덮어버린다 마찬가지로, label 2개를 만들고, top, leading, trailing 값을 20 으로 동일하게 주었다.
그리고 TitleLabel 은 내용을 길게 써넣으면, 위와 같은 에러를 볼 수 있다.
둘 모두 compression resistance priority 가 같으니 어느 한쪽을 높여 달라고 한다.
TitleLabel 에 우선순위를 1 높여주면, 따단-! 다른 Label 이 아예 사라져 버린다.
trailing 제약 조건 우선순위가 1000 이므로, 우선 만족 시키고
그다음 제약 조건 우선순위인 compression resistance 751 을 만족 시킨다.
그래서 옆에 위치한 Label은 아예 사라져 버린 것...
Title Label 은 750, Label 은 751 로 설정하면, 위와 같은 화면을 볼 수 있다.
List 화면 UI 구성시, 이 속성을 많이 사용하게 된다.
날짜 Label 과 타이틀 Label 중 더 중요한 정보는 날짜 Label 이므로, 우선순위를 높여 찌그러지지 않게 한다.
tableView에 적용한 모습 'Programming > iOS' 카테고리의 다른 글
Realm] 참고 자료 (0) 2020.03.18 Library] Lottie 로 json 애니메이션 넣기 (0) 2020.03.15 SnapKit 으로 UI 만들기 (0) 2020.03.11 iOS] ChainAnimation (0) 2020.03.07 iOS_13] present 로 뷰를 넘겼을때, 카드형태로 나오는 현상 (0) 2020.03.06