사람들이 왜 " 여백이 iOS 8 이전의 어떤 것에 대해서도 명백한 충돌을 일으킬 것이라고 있습니다. "
xib 파일 또는 스토리 보드에서 여백을 기준으로 제약 조건을 설정하면 iOS7에서 앱이 중단 되지 않습니다. 하지 않습니다 당신의 iOS7에 장치에 UI의 차이를 어느만큼 당신이 접촉하지 않는 UIView.layoutMargins및 UIView.preservesSuperviewLayoutMargins코드에서 속성을.
iOS8의 여백은 무엇입니까
레이아웃 여백은 내부 주변의 패딩을 나타냅니다. 의 UIView간격이 뷰와 서브 뷰의 가장자리 사이에 남아 있는지 확인 - 하위 뷰를 배치 할 때 레이아웃 시스템에서 사용할 수있는. 이와 관련하여 CSS의 블록과 관련된 패딩 속성과 매우 유사합니다.

기본적으로, UIView양쪽에 레이아웃 여백이 8 포인트이며 Interface Builder 에서 변경할 수 없습니다. . 그러나 UIView.layoutMarginsiOS8에서만 사용할 수있는 코드 에서 속성 을 설정하면 이 값을 조정할 수 있습니다.
IB가 여백을 표시하도록 할 수 있습니다. Editor> Canvas> Show Layout Rectangles를 사용 .

여백을 사용하여 뷰와 하위 뷰를 레이아웃 할 수 있습니다. 모든는 UIView기본적으로 마진와 함께,하지만 당신은 여백과 관련된 제약 조건을 설정할 때 그들은 단지보기 배치에 영향을 미칩니다.
여백을 사용하는 방법
Interface Builder에서 여백을 사용하는 유일한 방법은 제약 조건을 구성하는 동안 여백에 상대적 옵션 을 확인하는 것 입니다. 이것은 뷰를 배치 할 때 가장자리 대신 여백 을 사용 하도록 제약 조건을 지시하는 방법 입니다.

뷰와 서브 뷰 사이에 주요 제약 조건을 설정하는 네 가지 방법을 살펴 보겠습니다. 각 제약 조건에 대해 설명 된 첫 번째 연관은 서브 뷰의 선행 이며 두 번째는 슈퍼 뷰의 주요 입니다. 주의해야 할 것은 각 구속 조건 끝의 여백에 상대적 옵션의 체크 및 체크 해제 상태입니다. 이는 구속 조건이 뷰의 여백 또는 가장자리에 연결되어 있는지를 정의하기 때문입니다.
- 첫 번째 항목 (체크 해제), 두 번째 항목 (체크) :이 경우 하위 뷰의 왼쪽 가장자리가 슈퍼 뷰의 왼쪽 여백에 정렬되어야한다고 선언합니다 (그림 참조).

- 첫 번째 항목 (확인 취소), 두 번째 항목 (확인 취소) : 모두 margin가 아닌 edge를 사용 합니다. 이 경우, 서브 뷰의 왼쪽 가장자리는 슈퍼 뷰의 왼쪽 가장자리와 정렬되어야합니다.

- 첫 번째 항목 (확인), 두 번째 항목 (확인 취소) :이 경우 하위보기의 왼쪽 여백이 수퍼 뷰의 왼쪽 가장자리에 맞춰져야한다고 선언합니다. 이런 종류의 레이아웃은 실제로 서브 뷰가 슈퍼 뷰와 겹치게합니다.

- 첫 번째 항목 (확인), 두 번째 항목 (확인). 서브 뷰와 수퍼 뷰 모두 동일한 기본 마진을 가지므로 실제로 사례 2와 동일한 효과를 갖습니다. 우리는 서브 뷰의 왼쪽 여백이 슈퍼 뷰의 왼쪽 여백에 맞춰져야한다고 선언하고 있습니다.

여백에 대한 좋은 점
이 새로운 기능 (iOS8)은 여백을 사용하기로 결정한 경우에만 UI 개발에 영향을줍니다.
여백을 사용하면 단일 속성 값을 변경하여 공유 슈퍼 뷰와 공통 관계를 공유하는 여러 서브 뷰의 배치를 조정할 수 있습니다. 각 값을 하나씩 변경하는 대신 모든 간격을 업데이트해야하는 경우 한 줄의 이 같은 코드 :
self.rootView.layoutMargins = UIEdgeInsetsMake(0, 50, 0, 0);
이 이점을 설명하기 위해 다음과 같은 경우 모든 하위 뷰의 왼쪽 가장자리가 슈퍼 뷰의 왼쪽 여백에 맞춰집니다. 따라서 superview의 왼쪽 여백을 변경하면 모든 하위보기에 동시에 영향을 미칩니다.
