美文网首页
iOS屏幕旋转

iOS屏幕旋转

作者: Mortimey_yt | 来源:发表于2017-04-25 16:56 被阅读147次

一、两种方向的区别

  1. 设备方向
    设备的物理方向,由类型UIDeviceOrientation表示,当前设备方向获取方式:
    [UIDevice currentDevice].orientation
    该属性的值一般是与当前设备方向保持一致的,但须注意以下几点:
    ①文档中对该属性的注释
    @property(nonatomic,readonly) UIDeviceOrientation orientation; // return current device orientation. this will return UIDeviceOrientationUnknown unless device orientation notifications are being generated.
    哈哈哈...哈哈哈,英语好的可以自行翻译,英语的小白可以参考如下翻译或者打开谷歌翻译(切记,千万别用百度翻译,你懂得...),翻译如下:
    返回当前设备方向。 除非打开方向通知,否则这将返回UIDeviceOrientationUnknown

    鉴于以上原因,可以使用下面方法代替:
    if (![UIDevice currentDevice].generatesDeviceOrientationNotifications) {
    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
    }
    NSLog(@"%d",[UIDevice currentDevice].orientation);
    [[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
    **②系统横竖屏开关关闭
    如果关闭了系统的横竖屏切换开关,即系统层级只允许竖屏时间,再通过上述方式获取到的设备方向将永远是UIDeviceOrientationUnknown可以通过Core Motion中的CMMotionManager来获取当前设备方向。
  2. 界面方向
    界面显示的方向,由类型UIInterfaceOrientation表示。当前界面显示方向有以下两种方式获取:
    NSLog(@"%d",[UIApplication sharedApplication].statusBarOrientation);
    NSLog(@"%d",viewController.interfaceOrientation);
  3. 区别
    通过UIDevice获取到的设备方向在手机旋转时是实时的,通过UIApplication的statusBar或者viewController获取到界面方向在下述方法:
    - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:
    调用以后才会被更改成最新的值。
    二、相关枚举定义
  4. UIDeviceOrientation:
    typedef NS_ENUM(NSInteger, UIDeviceOrientation) {
    UIDeviceOrientationUnknown,
    UIDeviceOrientationPortrait, // Device oriented vertically, home button on the bottom
    UIDeviceOrientationPortraitUpsideDown, // Device oriented vertically, home button on the top
    UIDeviceOrientationLandscapeLeft, // Device oriented horizontally, home button on the right
    UIDeviceOrientationLandscapeRight, // Device oriented horizontally, home button on the left
    UIDeviceOrientationFaceUp, // Device oriented flat, face up
    UIDeviceOrientationFaceDown // Device oriented flat, face down
    };
    2 . UIInterfaceOrientation:
    typedef NS_ENUM(NSInteger, UIInterfaceOrientation) {
    UIInterfaceOrientationUnknown = UIDeviceOrientationUnknown,
    UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait,
    UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown,
    UIInterfaceOrientationLandscapeLeft = UIDeviceOrientationLandscapeRight,
    UIInterfaceOrientationLandscapeRight = UIDeviceOrientationLandscapeLeft
    };
    同样,英语不好的童鞋,please open google (装逼一下,哈哈...哈哈)........此处略去5千字.........
    从宏定义可知,设备方向比界面多了两个定义:UIDeviceOrientationFaceUp和UIDeviceOrientationFaceDown,分别表示手机水平放置时,屏幕向上和屏幕向下。

相关文章

  • 屏幕旋转

    屏幕旋转 推荐文档 了解UIWindow——UIWindow实践 iOS屏幕旋转问题总结 IOS:屏幕旋转与变换 ...

  • OC - 屏幕旋转(自动旋转、手动旋转、兼容iOS6之前系统)

    导读: 一、iOS6之前屏幕旋转知识了解 二、iOS6(包括iOS6)之后屏幕旋转知识了解 三、自动旋转具体操作 ...

  • 屏幕旋转和弹出框

    iOS中控制屏幕旋转相关方法 shouldAutorotate:是否支持屏幕旋转 alertView:clicke...

  • iOS Rotation

    iOS屏幕旋转学习笔记iOS开发中使用屏幕旋转功能的相关方法 1、基本知识点解读 了解屏幕旋转首先需要区分两种 o...

  • iOS传感器:实现一个随屏幕旋转的图片

    iOS传感器:实现一个随屏幕旋转的图片 iOS传感器:实现一个随屏幕旋转的图片

  • iOS 屏幕旋转处理

    iOS 屏幕旋转处理 在 iOS 设备上, 屏幕旋转是个挺坑比的问题. 苹果希望 app 对整个 app 做统一的...

  • iOS屏幕旋转

    方式一 假旋转 修改view的transform,通过旋转来实现横屏 工程配置 重写shouldAutorotat...

  • iOS 屏幕旋转

    第一种 在基类控制器,RootTableViewController,RootNaviViewController...

  • iOS屏幕旋转

    一、两种方向的区别 设备方向设备的物理方向,由类型UIDeviceOrientation表示,当前设备方向获取方式...

  • iOS屏幕旋转

    iOS屏幕旋转 1.基本属性和概念 shouldAutorotate supportedInterfaceOrie...

网友评论

      本文标题:iOS屏幕旋转

      本文链接:https://www.haomeiwen.com/subject/xkivzttx.html