zoukankan      html  css  js  c++  java
  • 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 = "方向未知"
            }
        }
    }
  • 相关阅读:
    【luogu P7418】Counting Graphs P(DP)(思维)(容斥)
    【luogu P7417】Minimizing Edges P(贪心)(思维)
    多边形序列(组合数)(高精)(NTT)
    【luogu P3803】【模板】多项式乘法(NTT)
    【luogu P1919】【模板】A*B Problem升级版(FFT快速傅里叶)
    【luogu P6139】【模板】广义后缀自动机(广义 SAM)
    【luogu P7529】Permutation G(几何)(数学)(DP)
    【luogu P5787】graph / 二分图 /【模板】线段树分治(扩展域并查集)(线段树分治)
    同桌的你(环套树)(DP)
    石子游戏(博弈论)(Spaly)
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/4843551.html
Copyright © 2011-2022 走看看