通过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 = "方向未知"
}
}
} |