study record

[iOS] Intrinsic Content Size 본문

iOS/iOS 정리

[iOS] Intrinsic Content Size

asong 2022. 2. 15. 16:01

Intrinsic Content Size는 무엇일까요?

어디서 나온 단어이고, 어디에 쓰일까요? 그리고 면접질문에서 왜 등장하는지 알아봅시다!

 

Intrinsic Content Size는 UI 인터페이스 요소의 오토레이아웃, 즉 제약을 설정할 때 등장하는 단어입니다. 우리가 인터페이스 요소를 스토리보드에 올려두었을 때 width와 height를 따로 설정하지 않았어도 자동으로 설정되는 경우가 있었습니다.

 

Intrinsic Content Size는 자신의 컨텐츠 사이즈에 따라서 결정되는 뷰 사이즈를 말합니다. label, button 같은 경우는 intrinsic content size가 있어서 뷰 내부의 컨텐츠에 따라 자신의 높이와 넓이를 알게 됩니다. 따라서 버튼의 제약을 지정할 때 모든 제약을 걸어주지 않아도 잘 위치시킬 수 있었습니다.

 

하지만 모든 뷰 요소들이 Intrinsic Size를 가지고 있는 것은 아닙니다. UIView 같은 경우에는 Intrinsic content size를 가지지 않습니다. TextView의 경우에는 스크롤링이 설정되어 있는 경우에는 Intrinsic Size가 설정되지 않습니다. 스크롤링을 설정하지 않은 경우에는 자동 줄바꿈을 고려하지 않은 텍스트의 크기로 결정됩니다. ImageView의 경우에는 처음에는 Intrinsic Size를 가지고 있지 않다가 나중에 이미지가 채워질 때 이미지의 크기로 결정됩니다.

 

 

 

 

 

애플의 공식 사이트에서는 intrinsicContentSize를 뷰 자신의 속성들을 고려하는 본질적인 사이즈라고 표현하고 있습니다. 커스텀 뷰는 콘텐츠를 가지고 있고, 이러한 프로퍼티를 세팅하는 것 자체가 컨텐츠에 기초하여 사이즈를 지정할 수 있도록 도와줍니다. 이 intrinsic size는 컨텐츠의 프레임에 따라 독립적이어야 합니다. 그 이유는 동적으로 변화하는 넓이에 소통할 수 있는 방법이 없기 때문입니다. 만약 intrinsic size를 가지고 있지 않다면 noIntrinsicMetric을 사용할 수 있습니다.

 

 

공식 사이트 : https://developer.apple.com/documentation/uikit/uiview/1622600-intrinsiccontentsize

참고 : https://woongsios.tistory.com/215