[ios] leftAnchor와 leadingAnchor의 차이점은 무엇입니까?

저는 iOS 용 Swift에서 제약 조건으로 작업 해 왔으며 대부분의 명명 규칙 / 문서는 내용을 매우 자명하게 만들지 만 최근 저를 혼란스럽게하는 한 가지는 NSLayoutXAxisAnchor 클래스의 두 쌍입니다.

leadingAnchor, leftAnchor

와 함께

trailingAnchor, rightAnchor

iOS 앱에서 프로그래밍 방식으로 제약 조건을 설정했을 때 이러한 제약 조건을 완전히 바꿔서 사용할 수 있다는 것을 알게되었습니다. leadAnchor를 사용하고 앱을 실행하고 동작을 관찰 한 다음 leftAnchor를 사용하고 앱을 실행하고 동작을 관찰하면 정확히 동일하게 작동합니다.

developer.apple.com에서 문서를 확인한 결과 결과는 똑같습니다 (이름 차이 무시). 예를 들어 leadingAnchor와 leftAnchor를 비교합니다.

“이 앵커를 사용하여 뷰의 앞쪽 가장자리로 제약 조건을 만듭니다.이 앵커는 NSLayoutXAxisAnchor 앵커의 하위 집합과 만 결합 할 수 있습니다. leaderAnchor를 다른 leadAnchor, trailingAnchor 또는 centerXAnchor와 결합 할 수 있습니다. 자세한 내용은 NSLayoutAnchor 클래스를 참조하세요. 참고.”

비교 :

“이 앵커를 사용하여보기의 왼쪽 가장자리로 제약 조건을 만듭니다.이 앵커를 NSLayoutXAxisAnchor 앵커의 하위 집합과 만 결합 할 수 있습니다. leftAnchor를 다른 leftAnchor, rightAnchor 또는 centerXAnchor와 결합 할 수 있습니다. 자세한 내용은 NSLayoutAnchor 클래스를 참조하십시오. 참고.”

이 속성 사이에 의도 된 차이점이 있는지 아는 사람이 있습니까?



답변

이것은 Mysteries of Autolayout 에 대한 WWDC 2015 비디오 중 하나에서 (간단히) 다루었습니다 ( 1 부라고 생각하지만 둘 다 볼 가치가 있습니다).

왼쪽 및 오른쪽 제약은 절대적이며 항상 화면 또는 컨트롤의 왼쪽 / 오른쪽을 참조합니다. 선행 및 후행 제약 조건은 장치 로캘의 영향을받습니다. 읽기 방향이 왼쪽에서 오른쪽 (영어, 프랑스어, 스페인어 등) 인 로케일에서는 선행 및 왼쪽 (및 후행 및 오른쪽)을 서로 바꿔서 사용할 수 있습니다. 읽기 방향이 오른쪽에서 왼쪽 인 로케일 (예 : 히브리어, 아랍어)에서는 ‘leading’이 오른쪽이되고 ‘trailing’이 왼쪽이됩니다.

비디오의 조언은 절대 왼쪽 / 오른쪽에 대한 특정 요구 사항이없는 한 거의 항상 왼쪽 / 오른쪽이 아닌 선행 / 후행을 사용해야한다는 것입니다.

레이블 및 텍스트 필드의 일반적인 ‘형식’을 고려하십시오. 선행 / 후행 제약 조건을 사용하는 경우 영어 로케일의 경우 왼쪽에 레이블을, 오른쪽에 텍스트 필드를, 히브리어 로케일의 경우 왼쪽에 텍스트 필드를 가져옵니다.

왼쪽에서 오른쪽으로 가르치는 어린 이용 앱을 만들고 항상 화면 왼쪽에 ‘왼쪽’버튼을 원했다면 왼쪽 / 오른쪽 제약이 적절할 것입니다.


답변