💡 아랍어와 같이 글자를 오른쪽에서 왼쪽 순으로 쓰는 언어권에서는 Leading은 왼쪽이 아닌 오른쪽에 나타나게 됩니다.
글을 읽는 방향에 따라 사용자 경험이 달라지기 때문에 버튼과 같은 UI도 다르게 배치되어야 합니다.
따라서 Left/Right 보다 Leading/Trailing을 사용하게 되면 코드를 조금 더 유연하게 작성할 수 있습니다.
추가로 WWDC15 Mysteries of Auto Layout에 Left/Right 보다 Leading/Trailing을 사용하라는 내용이 포함되어 있습니다.
단순히 글씨 이외에도 다른 상황에서도 사용 가능
만약 우리가 버튼에서 이미지를 넣게 되면 디폴트는 아래 길찾기 버튼과 같이 텍스트 왼쪽에 나타나게 됨!
💡 하지만 저기서 만약 iOS 15 이전에 이미지를 텍스트의 오른쪽으로 옮기고 싶다면 semanticContentAttribute = .forceRightToLeft 을 사용하면 아래와 같이 나타내기가 가능함!
let popupSearchButton: UIButton = {
let button = UIButton()
button.setImage(UIImage(systemName: "chevron.right"), for: .normal)
button.semanticContentAttribute = .forceRightToLeft
return button
}()
💡 하지만 semanticContentAttribute = .forceRightToLeft 는 단순히 이미지의 위치를 옮겨주는 것이 아닌 한글에서 왼쪽부터 글씨가 시작되는 것을 오른쪽으로 옮기는 글씨의 시작점 자체를 아랍어와 같이 뒤집어버리는 코드이기 때문에 만약 아래와 같이 forward를 사용한다면 오른쪽에서 왼쪽으로 가는 방향으로 반대가 되기 때문에 방향이 왼쪽으로 보이게 됨!
💡 그러므로 위와 같이 오른쪽 방향을 유지하고 싶다면 이미지에 right라고 방향이 명시되어 있는 이미지를 사용해야함!
let popupSearchButton: UIButton = {
let button = UIButton()
button.setImage(UIImage(systemName: "chevron.forward"), for: .normal)
button.semanticContentAttribute = .forceRightToLeft
return button
}()
💡 하지만 iOS 15부터는 button configuration의 등장으로 버튼의 이미지를 내가 원하는 그 어떤 곳에도 놓을 수 있음!