iOS 공부하는 감자

AutoLayout 본문

iOS

AutoLayout

DongTaTo 2022. 2. 10. 15:47
반응형

AutoLayout

제약조건(Constraints)에 따라 뷰 계층 구조에 있는 모든 뷰의 크기와 위치를 동적으로 지정하는 것

 

View의 위치와 크기를 정하는 방법은 CGRect타입인 Frame을 통해 코드로 지정도 가능하다.

그런데 Frame을 통해 위치를 정해주면 해상도가 다른 환경에서 일관되지 않은 화면이 나온다.!화면이 작든 크든 해당 화면의 좌측 상단을 0, 0으로 기준잡고 위치를 잡아주기 때문..

 

 

AutoLayout을 사용하면 이런 문제(?)가 해결된다!-> View의 위치나 크기를 다른 객체를 이용하여 "상대적"으로 제약조건(Constrains)을 주기 때문!

 

즉, 위치를 잡아주려는 View가 어떤 해상도 환경에 있든지 상관없이기준 객체를 기준으로 왼쪽으로 x만큼, 오른쪽으로 y만큼 위로는 z만큼.. 이렇게 위치를 잡아줌

이렇게 기준 객체를 통해 조건을 지정하는 것들이 Constrains!

 

 

AutoLayout을 설정하면 화면의 해상도에 따라 View의 위치와 크기가 변하니까 처음 정의를 설명할 때 View의 크기와 위치를 동적으로 지정한다고 했던것!

 

 

만약 왼쪽, 오른쪽의 여백을 주어서 width를 동적으로 지정했는데, 해당 View의 width를 직접 추가한다면?

제약조건이 충돌했다고 에러가 발생한다. 

 

 

 


Intrinsic Content Size

UILabel처럼 width, height를 지정하지 않아도 자동으로 크기가 들어가는걸 말한다..

컨텐츠의 "본질적인 크기" !!

 

Intrinsic Content Size를 가지는 요소들

  Intrinsic Content Size
Width
Intrinsic Content Size
Height
UIView X X
UISlider O X
UILabel, UIButton,
UISwitch, UITextField
O O
TextView, ImageView Content에 따라 변화

 

 

 

 

반응형

'iOS' 카테고리의 다른 글

UIButton in iOS 15.0  (0) 2022.07.04
Entry Point  (0) 2022.07.04
qos (Quality of Service)  (0) 2022.05.21
iOS) 탭바를 버튼처럼 사용하기  (0) 2022.04.08
스토리보드 컴포넌트  (0) 2022.02.08