Intrinsic Size
는 Content의 본질적인 크기이다. 모든 view가 Intrinsic Size를 갖는 것이 아니다. 대표적인 예로는 UILabel, UIButton등을 들 수 있다. UILabel에서 컨텐츠의 길이가 변하면 자동으로 계산해주는 것에 사용되는 것과 같습니다.
또한 각각의 view마다 Intrinsic size가 적용되는 방식이 다르다.
Intrinsic content size는 view의 자연스러운 사이즈이다. 이때의 사이즈는 view의 속성들만 고려한 사이즈라 할 수 있다. 예를 들어, UIButton의 Intrinsic Content Size는 Title Size + margin이다. 또한 모든 view에 Intrinsic Content size가 있는 것은 아니다
@IBOutlet weak var slider: UISlider!
@IBOutlet weak var button: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
print("UIView - (w: \\(self.view.intrinsicContentSize.width), h: \\(self.view.intrinsicContentSize.height))")
print("UISlider - (w: \\(slider.intrinsicContentSize.width), h: \\(slider.intrinsicContentSize.height))")
print("UIButton - (w: \\(button.intrinsicContentSize.width), h: \\(button.intrinsicContentSize.height))")
}
Intrinsic Content Size
가 없는 UIView
는 width, height 모두 -1이 출력되고 있다.