Master-Detail의 아이폰 앱을 사용해 봤습니다.
그림 왼쪽에서 보듯이 Push를 통해 이전된 아이폰 응용 프로그램이 있는데 아이패드의 대응에 따라 그림 오른쪽에 있는 레이아웃을 설치하는 상황을 구상했다.
중요한 것은 어떤 형태로든 아이패드에 대처해 보고 싶은 사람을 대상으로 하는 것이다.
방법
1. UISplitViewController 설치
After
2. 항목 설정
3. MasterViewController 수정
class MasterViewController: UITableViewController, UISplitViewControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
if let split = self.splitViewController {
split.delegate = self // デリゲートのセット
split.preferredDisplayMode = .AllVisible // 常時2ペイン表示に設定
}
}
func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController, ontoPrimaryViewController primaryViewController: UIViewController) -> Bool {
return true
}
이게 완성이야.레이아웃 조정이 필요한 경우
배치가 붕괴된 상황에서 조정하다.제가 반한 곳을 소개해 드릴게요.
보기 폭 가져오기
예를 들어 Master의 UIVIew Controller에서tableView의width를 얻으려면 최초의viewWill Appear까지 전체 화면의width를 되돌려 실제 디스플레이의width를 얻을 수 없습니다.
어떻게든 뷰윌 페이어를 원하기 전의 상황은 self입니다.splitViewController!.primaryColumnWidth를 사용하여 검색합니다.
회전 지원
아이패드에 대응하면 화면이 돌아가고 싶어요(웃음).
viewWillTransitionToSize를 통해 회전 이벤트를 가져올 수 있지만, 회전 후 내비게이션 막대나 상태 막대의 크기를 가져올 수 없습니다.이런 상황에서,coordinator.animateAlongsideTransition으로 지정된 블록에서 가져오고 설정할 수 있습니다.(정공법이 아닐 수도 있어요. 그나저나 회전 후의 화면 사이즈라면size에서 얻을 수 있어요.)
MasterViewController.swift
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransitionToSize(size, withTransitionCoordinator: coordinator)
coordinator.animateAlongsideTransition(
{ (context: UIViewControllerTransitionCoordinatorContext) -> Void in
let width = self.navigationController!.navigationBar.bounds.height
// レイアウト調整
}, completion: nil)
}
끝내다
아이폰 앱의 아이패드 대응에서 한 일을 소개했다.
다른 더 좋은 방법이 있다면 저에게 댓글을 달아주시면 기쁩니다.
Reference
이 문제에 관하여(Master-Detail의 아이폰 앱을 사용해 봤습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yosan/items/6893c36382ba0b5b08fd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)