iOS

[swift] AutoLayout 기초 개념 한번에 정리

D0HAN. 2021. 5. 10. 02:53
  •  해당 뷰의 x,가로/ y,세로 가 모두 충족되어야함. (혹은 네 방향 앵커)
  • Add missing constraint 누르면 자동으로 추가해줌. '
  • constraints 충돌시 width, height 보다 ancohor가 우선

Scroll View AutoLayout 

  • 스크롤 뷰는 처음에 앵커잡아도 빨간줄이 뜸 --> content가 없기 때문
  • 처음에 스크롤뷰 바로 아래에 UIView 하나 넣는게 편함
  • View의 제약조건을 Content Layout Guide에 건다.
  • View와 Frame Laout Guide에 equal width(세로스크롤일 경우)/equal height(가로스크롤) 건다.
  • 그리고 필요한만큼 heigth 설정
  • 화면 넘어가는 부분 작업할때는 view controller누르고 sizeinspector에서 simulated size를 freeform으로 바꾼후 필요한만큼 가로세로 조정

 


Priority

  • 기본 priority(우선순위) 값은 1000 -> 가장 강한 우선순위
  • 숫자가 작을수록 우선순위가 밀림

Content Hugging Priority

  • 두개의 뷰 사이의 제약조건 때문에 둘 중 하나를 끌어당겨야 하는데 어디를 당길거냐. 결정
  • 기본 값은 251
  • 숫자 큰 쪽은 온전한 채로, 숫자 작은 쪽이 늘어남.끌어당겨짐.

Content Compression Resistance Priority

  • 둘 사이의 제약조건이 전체 프레임보다 클때! 공간이 부족해 누군가 밖으로 밀어내야하는 상황
  • 기본값 750
  • 숫자가 큰 쪽이 작은쪽을 밀어냄 
  • 둘 사이의 제약조건이 전체 프레임보다 작을때! 공간이 남아 누군가는 늘어나야 하는 상황일 때 적용 

StackView 

  • 안에 크기를 알수있는(크기지정된 view,혹은 label 등) 컴포넌트를 넣으면 저절로 크기가 맞춰짐
  • Distribution-fill 로 줬을때는 보정값 x
  • Distribution-fill equally 로 주면 한개만 크기 있어도  가장 큰 크기에 맞춰서 크기가 같아
  • Distribution-fill proportionally 각각의 크기에 맞게 비율 조정됨
  • Alignment 는 스택뷰 내부에서의 정렬 (위, 중앙, 아래)

 

 

개발하는 정대리님의 강의를 듣고 정리했습니다!