端末を回転させたい場合、画面切り替え方法ではまったのでメモ
※勉強用で作成したメモです。
前提
viewの作成にxibもしくはstoryboardを使用していること
実装内容
縦画面の場合
- 横画面用のviewを非表示
- 縦画面用のviewを表示
横画面の場合
- 横画面用のviewを表示
- 縦画面用のviewを非表示
手順
1.xibもしくはstoryboardで縦画面(ここではviewV)、横画面(ここではviewH)を作成し、アウトレット接続する
2.viewDidLoadにviewをaddSubView、viewWillTransitionToSize()内に画面切り替え処理を記述
3.回転時ライフサイクルイベントviewWillTransitionToSize()が呼ばれる
例を以下に記述(ViewController.swift)
ViewController.swift
override func viewDidLoad() {
super.viewDidLoad()
self.view.addSubView(viewV)
self.view.addSubView(viewH)
rotationDisp()
}
func rotationDisp() {
let size:CGSize = UIScreen.mainScreen().bounds.size
if size.width < size.height {
viewV.hidden = false // 縦用viewを表示
viewH.hidden = true // 横用viewを非表示
} else if size.width > size.height {
viewV.hidden = true // 縦用viewを非表示
viewH.hidden = false // 横用viewを表示
}
}
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
rotationDisp()
}