通过UIDevice.currentDevice()来获取设备,可以取得设备当前的方向。
同时,我们可以添加一个通知来监听设备方向的变化,这样在开发中可以对不同的方向定制不同的排版布局界面。
下面通过一个样例,演示如何监测设备方向:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
import UIKitclass 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 = "方向未知" } }} |