画面回転を検知

画面回転を検知して、ラベルやメニュー(View)を消す動作を実装

完成形はこれ

画面ヨコ向きの時だけメニューバーが消えます(ただのViewですが)

Main.storyboard編集

Viewを配置して、Viewの中にラベルを配置(ラベルは無くても可です)

ViewController.swift編集

「View」は“testView”という名前でViewControllerに紐づけます。ラベルはひも付け不要。

import UIKit

class ViewController: UIViewController {
    
    //Viewをコードでひも付け
    @IBOutlet weak var testView: UIView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        //回転検知用に以下コードを書いておく
        NotificationCenter.default.addObserver(self,selector: #selector(self.rotationChange(notification:)),name:UIDevice.orientationDidChangeNotification,object: nil)
        
    }
    
    @objc func rotationChange(notification:   NSNotification){
        
        let rotTest = UIDevice.current
        switch rotTest.orientation {
        case .portrait:
            print("画面タテ向き")
            testView.isHidden = false
        case .landscapeLeft:
            print("画面ヨコ向き(ヒダリ)")
            testView.isHidden = true
        case .landscapeRight:
            print("画面ヨコ向き(ミギ)")
            testView.isHidden = true
        case .portraitUpsideDown:
            print("画面を立てて倒す")
        case .faceUp:
            print("画面を立てる")
        case .faceDown:
            print("画面を倒す")
        default:
            print("")
            
        }
    }
}

こんな感じで、画面横向きの時だけ広告を消すとか色々できます。

おしまい

コメント

タイトルとURLをコピーしました