프로토타이핑 제약
- 뷰를 배치하고, 제약을 추가하지 않은 상태에서 실행할 경우 자동으로 제약을 추가해주는 방식
- 실제 앱에서 사용하기에는 적합하지 않다.
- 직접 제약을 추가하면 더 이상 자동으로 추가되지 않는다.
캔버스 메뉴에서 제약 추가하기
![](https://velog.velcdn.com/images/rudin_/post/211e36a2-ac93-4710-b988-a738186017e6/image.png)
- 제약을 추가하고자 하는 부분을 체크하고 값을 입력한다.
- 추가되면 파란색 실선으로 표시되며, 제약이 부족하여 에러가 날 부분은 붉은 실선으로 표시된다.
- 인터페이스 빌더 왼쪽 도큐먼트 아웃라인의 Constraint 항목에서 제약을 확인할 수 있다.
Ctrl + Drag
![](https://velog.velcdn.com/images/rudin_/post/e88376b5-f80d-4b8a-a993-4b157d4bd474/image.png)
- 뷰가 선택되어있는 상태에서 원하는 다른 뷰로 Ctrl + Drag를 하면 제약을 추가할 수 있다.
shift
키를 통해 제약을 한꺼번에 추가할 수 있다. 확인은 return
opt
키를 누르면 다른 제약이 표시된다.
![](https://velog.velcdn.com/images/rudin_/post/5685b021-2a39-42ff-8d3f-52ff2e6d1b2a/image.png)
- 뷰의 너비나 높이는 해당 뷰 내부에서 드래그 앤 드랍하면 설정 가능하다.
![](https://velog.velcdn.com/images/rudin_/post/3dc5c2fa-23f5-41a7-aed6-7ceec6bfbebe/image.png)
- 드래그 각도에 따라서 표시되는 제약이 다름을 주의하자.
![](https://velog.velcdn.com/images/rudin_/post/d62f3480-3d19-47fe-af10-2b2da085e30c/image.png)
주의할 점
- 제약을 추가할 때는 현재 프레임 크기를 기준으로 제약을 추가하므로, 미리 프레임 크기를 설정해두고 제약을 추가하는 것이 추천된다.
- 그렇지 않으면, 의도하지 않은 제약이 추가되는 경우가 있다.
Visual Indicators
![](https://velog.velcdn.com/images/rudin_/post/f140bd90-47f2-426f-8a3e-77d0bfcc057f/image.png)
- 파란 선을 애플 레퍼런스에서는
I-Bar
라고 부른다.
- 공간의 크기, 여백의 크기, 너비와 높이 등을 표현
- 최소 제약이 충족되지 않은 경우 붉은색으로 표시된다.
- 바를 더블클릭 하면 제약의 값을 수정 가능하다.
![](https://velog.velcdn.com/images/rudin_/post/1dadb353-f371-4845-a4fb-83ed00cc4dc4/image.png)
- T 모양이 아닌 실선은 정렬 위치를 표시하는 라인이다.
![](https://velog.velcdn.com/images/rudin_/post/0f1c86a7-60f1-4d73-9912-8825d9772dc7/image.png)
- 제약이 있는 뷰를 드래그로 옮길 경우, 주황 선이 표시되는데, 이 주황선이 계산 된 최종 프레임이며, 현재 프레임과 다를 경우 주황선으로 표시된다.
- 실제 실행 시 주황선 기준으로 표시된다.
![](https://velog.velcdn.com/images/rudin_/post/f4800b16-5de4-4f5c-97af-e43bfb4f343f/image.png)
- 다시 최종 프레임과 동일하게 맞춰주려면 하단의 화살표 버튼이 활성화되고, 이 버튼을 누르면 위치를 자동으로 맞춰준다.
![](https://velog.velcdn.com/images/rudin_/post/bcda906e-7e1d-4122-b12f-e18d9744046b/image.png)
Badge
우선순위
![](https://velog.velcdn.com/images/rudin_/post/8a5991d5-3997-445f-bfdb-5a2a4d9abc99/image.png)
- 우선순위가 1000인 제약은
필수 제약
이다.
- 1000보다 작은 값으로 바꿀 경우
선택 제약
이 된다.