Swift - 判断设备方向(或监听设备方向的改变)
通过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 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 = "方向未知" } } } |