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