Swift - 判断设备方向(或监听设备方向的改变)

原文出自:www.hangge.com 转载请保留原文链接:http://www.hangge.com/blog/cache/detail_781.html
通过UIDevice.currentDevice()来获取设备,可以取得设备当前的方向。
同时,我们可以添加一个通知来监听设备方向的变化,这样在开发中可以对不同的方向定制不同的排版布局界面。
下面通过一个样例,演示如何监测设备方向:
Swift - 判断设备方向(或监听设备方向的改变)_第1张图片

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var orientationLabel: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()

        //感知设备方向 - 开启监听设备方向
        UIDevice.currentDevice().beginGeneratingDeviceOrientationNotifications()
        //添加通知,监听设备方向改变
        NSNotificationCenter.defaultCenter().addObserver(self, selector: "receivedRotation",
            name: UIDeviceOrientationDidChangeNotification, object: nil)

        //关闭设备监听
        //UIDevice.currentDevice().endGeneratingDeviceOrientationNotifications()
    }

    //通知监听触发的方法
    func receivedRotation(){
        var device = UIDevice.currentDevice()
        switch device.orientation{
            case .Portrait:
                orientationLabel.text = "面向设备保持垂直,Home键位于下部"
            case .PortraitUpsideDown:
                orientationLabel.text = "面向设备保持垂直,Home键位于上部"
            case .LandscapeLeft:
                orientationLabel.text = "面向设备保持水平,Home键位于左侧"
            case .LandscapeRight:
                orientationLabel.text = "面向设备保持水平,Home键位于右侧"
            case .FaceUp:
                orientationLabel.text = "设备平放,Home键朝上"
            case .FaceDown:
                orientationLabel.text = "设备平放,Home键朝下"
            case .Unknown:
                orientationLabel.text = "方向未知"
            default:
                orientationLabel.text = "方向未知"
        }
    }
}

你可能感兴趣的:(Swift - 判断设备方向(或监听设备方向的改变))