ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AutoLayout] 우선순위 설정 1
    Programming/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에 적용한 모습

    댓글

Designed by Tistory.