[iOS] AutoLayout Canvas Menu
![](https://velog.velcdn.com/images/rudin_/post/541d55fd-c9e1-41a9-a525-6c517f7f0747/image.png)
Update Frame
![](https://velog.velcdn.com/images/rudin_/post/180d3ad5-a280-4c21-a520-808a203dd93c/image.png)
- 현재 프레임과 최종 프레임이 다를 때 활성화 된다.
- 클릭 시 최종 프레임에 맞춰준다.
Align
![](https://velog.velcdn.com/images/rudin_/post/3faeb434-2167-4f96-a26c-6999ff68e10e/image.png)
Pin
![](https://velog.velcdn.com/images/rudin_/post/3446a2ae-2097-44fa-8a5d-b57b13d7c287/image.png)
- 여백 제약과 크기 제약을 추가하는 창을 표시해준다.
Resolve
![](https://velog.velcdn.com/images/rudin_/post/dc4601af-b720-4e95-b5d8-ffcbc046d20c/image.png)
- 제약에서 문제가 발생했을 때 사용
- Selected Views는 선택한 뷰에 대해서만 작업
- All Views in View Controller는 씬의 모든 뷰에 대해서 작업
Update Constraint Constants
![](https://velog.velcdn.com/images/rudin_/post/8a9c8902-a1db-4574-9863-9e7cf45c06e5/image.png)
- 최종 프레임을 현재 프레임에 맞춰 제약을 변경하고 싶은 경우 선택
Add Missing Constraints
- 제약 에러 발생 시 선택이 가능해지나, 이 메뉴로는 의도한 바와 다른 제약이 추가될 확률이 매우매우 높으므로 사용하지 않는다^__^(왜있는건데)
Reset to Suggested Constraints
- 현재 있는 제약을 모두 없애고 새로운 제약을 Xcode가 추가한다.
- 위의 기능과 마찬가지인 이유로 사용하지 않는다.
Clear Constraints
Embed In
![](https://velog.velcdn.com/images/rudin_/post/0c8629c8-2839-4a70-85ce-0b03adef6d5f/image.png)
- view항목은 view를 선택한 상태에서 활성화
- view Controller 항목은 scene을 선택한 상태에서 활성화
View
- 기본 여백과 함께 선택한 뷰를 새로운 뷰 계층의 서브뷰로 만든다.
View Without Inset
- 선택한 뷰를 여백 없이 새로운 뷰 계층의 서브뷰로 만든다.
Unembed
Navigation Controller
- 선택한 vc를 Navigation Controller에 임베드
Tab bar Controller
- 선택한 vc를 Tab bar Controller에 임베드
제약이 추가되는 위치
![](https://velog.velcdn.com/images/rudin_/post/d72bbaf9-3f3e-4c04-b29d-32ff1ae3dc09/image.png)
- 종류에 따라 추가되는 계층이 다르다.
- 다른 뷰를 기준으로 추가하거나 세이프 에리어를 기준으로 추가하면 가장 인접한 공통 슈퍼뷰에 추가된다.
- 코드로 제약 확인 시해당 슈퍼뷰의 속성으로 확인해야한다.
- 크기 제약은 제약을 설정한 뷰에 추가된다.
![](https://velog.velcdn.com/images/rudin_/post/26ff71c1-858c-4833-89d2-2c80e9b2e91a/image.png)
- A뷰에 크기 제약 추가 시 A뷰에 추가
- C, D 뷰에 Equal height 제약 추가 시 가장 인접한 슈퍼뷰인 A 뷰에 추가
- D, E 뷰 사이 제약을 추가하면 Root View에 추가된다.