-
프레임, 경계 또는 중심 속성을 사용하여 뷰의 지오메트리를 지정하지 마십시오.
-
가능한 한 Stack View를 사용하십시오.
- Stack View는 콘텐츠의 레이아웃을 관리하여 나머지 레이아웃에 필요한 제약 논리를 크게 단순화합니다. Stack View가 필요한 동작을 제공하지 않는 경우에만 사용자 지정 제약 조건에 의존하십시오.
-
View와 가장 가까운 이웃 간에 제약 조건을 만듭니다.
- 두 개의 버튼이 나란히 있는 경우 두 번째 버튼의 선행 가장자리를 첫 번째 버튼의 후행 가장자리로 제한합니다. 두 번째 버튼에는 일반적으로 첫 번째 버튼을 가로질러 뷰의 가장자리에 도달하는 제약 조건이 없어야 합니다.
-
뷰에 고정된 높이나 너비를 제공하지 마십시오.
- Auto Layout의 요점은 변화에 동적으로 대응하는 것입니다. 고정 크기를 설정하면 View의 적응 기능이 제거됩니다. 그러나 View의 최소 또는 최대 크기를 설정할 수 있습니다.
-
제약 조건을 설정하는 데 문제가 있는 경우 고정 및 정렬 도구를 사용해 보십시오. 이러한 도구는 Control-드래깅보다 다소 느릴 수 있지만 제약 조건을 생성하기 전에 관련된 정확한 값과 항목을 확인할 수 있습니다. 이 추가 온전성 검사는 특히 처음 시작할 때 도움이 될 수 있습니다.
-
항목의 프레임을 자동으로 업데이트할 때 주의하십시오. 항목에 크기와 위치를 완전히 지정하기에 충분한 제약 조건이 없으면 업데이트 동작이 정의되지 않습니다. 뷰는 높이나 너비가 0으로 설정되거나 실수로 화면에서 벗어났기 때문에 종종 사라집니다.
- 항상 항목의 프레임을 업데이트한 다음 필요한 경우 변경을 취소할 수 있습니다.
-
레이아웃의 모든 View에 의미 있는 이름이 있는지 확인하십시오. 이렇게 하면 도구를 사용할 때 View를 훨씬 쉽게 식별할 수 있습니다.
- 시스템은 텍스트나 제목에 따라 레이블과 버튼의 이름을 자동으로 지정합니다. 다른 View의 경우 ID 관리자에서 Xcode 특정 레이블을 설정해야 할 수도 있습니다(또는 문서 개요에서 View 이름을 두 번 클릭하고 편집하여).
-
항상 오른쪽과 왼쪽 대신 선행 및 후행 제약 조건을 사용하십시오.
- semanticContentAttribute뷰의 속성(iOS) 또는 userInterfaceLayoutDirection속성(OS X) 을 사용하여 뷰가 선행 및 후행 가장자리를 해석하는 방법을 언제든지 조정할 수 있습니다 .
-
iOS에서 항목을 뷰 컨트롤러의 Root 뷰 가장자리로 제한할 때 다음 제약 조건을 사용합니다.
-
Horizontal constraints
- 대부분의 컨트롤의 경우 레이아웃 여백에 0점 제약 조건을 사용합니다. 시스템은 장치가 무엇이고 앱이 View 컨트롤러를 표시하는 방법에 따라 올바른 간격을 자동으로 제공합니다.
- Root View를 여백에서 여백으로 채우는 텍스트 개체의 경우 레이아웃 여백 대신 읽을 수 있는 콘텐츠 안내선을 사용하십시오.
- Root View를 가장자리에서 가장자리로 채워야 하는 항목(예: 배경 이미지)의 경우 View의 선행 및 후행 가장자리를 사용합니다.
-
Vertical constraints
- View가 막대 아래로 확장되는 경우 위쪽 및 아래쪽 여백을 사용합니다. 이것은 스크롤 View에 특히 일반적이며 콘텐츠가 막대 아래에서 스크롤되도록 합니다. 그러나 콘텐츠의 초기 위치를 올바르게 설정하려면 스크롤 뷰 contentInset와 속성 을 수정해야 할 수도 있습니다 .scrollIndicatorInsets
- View가 막대 아래로 확장되지 않으면 View를 위쪽 및 아래쪽 레이아웃 안내선으로 대신 제한합니다.
-
프로그래밍 방식으로 View를 인스턴스화할 때 translatesAutoresizingMaskIntoConstraints 속성을 false로 설정해야 합니다 . 기본적으로 시스템은 뷰의 프레임과 자동 크기 조정 마스크를 기반으로 한 세트의 제약 조건을 자동으로 생성합니다. 고유한 제약 조건을 추가하면 자동 생성된 제약 조건과 필연적으로 충돌합니다. 이것은 만족스럽지 못한 레이아웃을 만듭니다.