샘성의 iOS 개발 일지

Intrinsic Size에 대해서 설명하시오. 본문

iOS/면접

Intrinsic Size에 대해서 설명하시오.

SamusesApple 2023. 6. 13. 22:17
728x90

1. Content가 있는 View와 없는 View?

  1-1)Content가 있는 View

  • UILabel, UIButton, UISegementedControl 처럼 생성하면 안에 띄울 텍스트, 콘텐츠가 포함된 View.
  • 개발자가 따로 크기를 조정하지 않아도 안에 들어간 콘텐츠의 사이즈에 맞게 알아서 조건이 설정된다.

 e.g) 기본 UIView를 좌표 위에 올릴 때는 넓이를 잡아야함.

        반대로 UILabel은 넓이 잡지 않고 좌표 위에 올리면, 해당 레이블에 들어간 글자 수와 폰트 크기에 맞게 사이즈가 조정됨

 

  1-1)Content가 없는 View

  • UIView, UITextView처럼 생성할 때 안에 콘텐츠가 포함되지 않는 View.
  • 개발자가 좌표 위에 올릴 때, 크기를 함께 설정해줘야한다.
  • 콘텐츠가 없기에 어디에 위치할지만 잡으면 얼마난 view를 올릴건지를 예측할 수 없음.

e.g) CustomAlertView를 만드는 상황을 가정

  1. 기본 바탕이 되는 View 위에 알림 역할을 하는 View를 올린다.
  2. 해당 알림 역할을 하는 View의 top, bottom, leading, trailing 4개의 anchor를 다 잡거나, top, leading을 잡은 후 width, height를 잡거나, top, leading, trailing을 잡은 후 height를 잡는 등 사이즈를 설정해줘야한다.

 

 

2. Intrinsic Content Size란?

  1번에서 설명한 콘텐츠가 포함된 View의 고유 사이즈를 Intrinsic Content Size라고 한다.

 

 

3. Intrinsic Content Size의 우선순위

  • 콘텐츠가 포함된 View에게 넓이나 높이 조건을 준다면 따로 개발자가 설정한 넓이와 높이 조건이 우선순위로 작용한다.
  • 개발자가 설정한 크기의 우선순위는 1000이라는 디폴트 값을 갖고 있다.
    만약, 개발자가 설정한 constraint의 priority를 1로 설정한다면 개발자가 설정한 우선순위가 더 낮아지므로 콘텐츠 크기만큼 view의 크기가 설정된다.

 

728x90