k-coding

Xcode 오토레이아웃 (AutoLayout) (2) 본문

iOS/Xcode

Xcode 오토레이아웃 (AutoLayout) (2)

chkhn_oiiu 2022. 1. 11. 00:49

AutoLayout이란 constraints(제약)을 이용하여 View의 위치와 크기를 동적으로 지정하는 것이다.

 

AutoLayout에서는 화면의 크기에 맞게 위치와 크기를 동적으로 지정하기 때문에

 

어떤 특정 값을 따로 지정하지 않아도 그 값이 계산(유추)가 된다면 오류가 나지 않는다.

다음과 같이 Label의 Width를 지정하지 않더라도 Trailing과 Leading을 통하여

 

넓이가 자동적으로 계산되어 지정된다.

 

그렇지만 바로 위에 경우에서는 Trailing도 0이고, 넓이도 0인데 자동적으로 width가 어느 공간만큼

 

계산되어 View에 나타났다. 

 

이러한 것을 instrinsic content size본질적 컨텐츠의 크기라고 한다.

 

 

instrinsic content size

 

대부분의 view들은 기본적인 size들을 가지고 있습니다.

 

때문에 위와같은 상황에서 trailing과 width가 설정되지 않았지만 label이 자신의 고유한 size를 나타낸것입니다.

 

그렇기 때문에 width와 height이 설정되지 않더라도

 

1
2

1 과 2의 text font의 차이에도 불구하고 자동적으로 label의 size가 커지는것이다.

 

하지만 억지로 width와 height를 설정하게 된다면

 

해당 label에서 보여줄 수 있는 범위 외의 글자는 ... 처리되서 안보이게 됩니다.

 

 

 

이렇게 굳이 width와 height를 설정해주지 않아도 자동적으로 고유한 size를 보여주는 view들은 다음과 같다.

 

  • UILabel
  • UIButton
  • UISwitch
  • UITextField
  • UISlider                  ( width만 intrinsic content size 적용,  height는 적용 되지않음 )
  • TextView, ImageView  ( content에 따라 적용 size가 변화 )

 

UIView는 intrinsic content size가 width와 height  둘 다 적용되지 않습니다.

'iOS > Xcode' 카테고리의 다른 글

Xcode 오토레이아웃 (AutoLayout) (4)  (0) 2022.01.13
Xcode 오토레이아웃 (AutoLayout) (3)  (0) 2022.01.12
Xcode 오토레이아웃 (AutoLayout) (1)  (0) 2022.01.10
Xcode 테이블 뷰 ( 2 )  (0) 2021.11.23
Xcode 테이블 뷰 ( 1 )  (0) 2021.11.22
Comments