Storyboard의 Size Class에서 iPad도 가로/세로 레이아웃을 전환
1896 단어 XcodeiOSStoryboard
하지만, 이것을 iPad로 동작시키면, 세로도 옆에서도 공통 레이아웃이 되어 버립니다.
Size Class에서는 iPad의 세로와 가로 레이아웃을 나누는 설정은 없는 것 같습니다.
iPhone과 iPad에서 똑같이 종횡으로 레이아웃을 나누고 싶은 경우, 이것으로는 조금 불편합니다.
이 문제를 해결하려면 다음 단계를 수행하면 잘 보입니다.
1. 레이아웃을 나누고 싶은 ViewController를 적당한 ViewController의 ChildViewController로 합니다.
2. ParentViewController에서
UIViewController#overrideTraitCollectionForChildViewController
를 override하고 화면 방향에 따라 UITraitCollection
를 반환합니다.override func overrideTraitCollection(forChildViewController childViewController: UIViewController) -> UITraitCollection? { {
let any = UITraitCollection(verticalSizeClass: .unspecified)
let compact = UITraitCollection(verticalSizeClass: .compact)
// landscape
if self.view.frame.width > self.view.frame.height {
return UITraitCollection(traitsFrom: [any, compact])
}
// portrait
return UITraitCollection(traitsFrom: [any, any])
}
이번, 예로서 이하와 같이 핑크의 뷰를 세로의 때는 좌상, 옆의 때는 우하가 되도록 배치해 보았습니다.
그래서, iPad에서 시작하여 종횡 회전시켜 보면
제대로 종횡으로 전환했습니다.
다만, ChildViewController로 하지 않으면 안되는 것이 조금 미묘하네요.
애플적으로는 iPad는 세로와 옆으로 레이아웃을 나누고 싶지 않습니까?
참고
Reference
이 문제에 관하여(Storyboard의 Size Class에서 iPad도 가로/세로 레이아웃을 전환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yoshimin@github/items/a71706babdc0161df59c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)