With Uidevice.currentdevice () to get the device, you can get the current orientation of the device.
At the same time, we can add a notification to monitor the changes in the direction of the device, so that in the development of different directions can be customized different layout interface.
The following example shows how to monitor the device orientation:
123456789101112131415161718192021222324252627282930313233343536373839404142 |
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-Determine the direction of the device (or change the direction of the monitoring device)