7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Swift] 画面回転時のviewの切り替え方法について

Last updated at Posted at 2015-08-24

端末を回転させたい場合、画面切り替え方法ではまったのでメモ

※勉強用で作成したメモです。

前提
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()
}

7
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?