iOS的屏幕旋转学习笔记(orientation)

由于项目的需要,在播放视频的ViewController中需要支持横屏旋转播放器,故重新写了一下整个app的控制。

开始吧,首先保证一下自己的项目是支持三个方向的旋转的。

在iPad中,苹果默认支持四个方向的旋转;在iPhone中,苹果默认只支持3中方向(建议按照套路来)

这里明确一下,相信大家做项目的时候都已经有一种意识,就是在开始项目的时候,都配备了 BaseViewController、BaseNavigationController 这两个最基础的类以供所有的ViewController,NavigationController继承。

额:如果没有,建议尽快添加 :-D

只要项目支持三个方向的旋转,不添加任何代码的情况下,app在手机旋转的时候就会自动旋转的。

在BaseNavigationController增加下面两个方法:


- (BOOL)shouldAutorotate {

    if (self.topViewController != nil) {
        //如果当前有VC,获取VC里面的shouldAutorotate
        return [self.topViewController shouldAutorotate];

    }

    return [super shouldAutorotate];

}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {

    if (self.topViewController != nil) {
        //如果当前有VC,获取VC里面的supportedInterfaceOrientations
        return [self.topViewController supportedInterfaceOrientations]; 

    }

    return [super supportedInterfaceOrientations];

}

在BaseViewController增加下面两个方法:

- (BOOL)shouldAutorotate {
    //这里需要返回YES 
    // 如果你的项目仅仅在某个VC里面支持横屏,其他都不支持的话,这里也需要返回YES
    return YES;      
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
    //如果你的项目仅仅在某个VC里面支持横屏,其他都不支持的话,这里也需要返回UIInterfaceOrientationMaskPortrait
    //而如果你的项目每一个页面都需要支持横屏,这里返回UIInterfaceOrientationMaskAllButUpsideDown就可以了
    return UIInterfaceOrientationMaskPortrait;
}

现在的代码代表是项目所有页面都只支持一个方向Portrait,不支持横屏。
如果你现在新建一个需要横屏的LandscapeViewController,则你只需要在 LandscapeViewController.h 继承BaseViewController

@interface LandscapeViewController : BaseViewController

在LandscapeViewController.m 里面 增加

#pragma mark 开放横屏切换
- (BOOL)shouldAutorotate {
    return YES;
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskAllButUpsideDown;
}

现在就实现了在整个项目中 仅仅LandscapeViewController这个VC能旋转。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 相爱时,任何小事都是增进感情的步骤;不爱时,任何小事都是变心的证据。 1. 朵儿和萝卜先生在一起的时候是初夏,他们...
    艾米小姐阅读 3,975评论 0 2
  • 9月中旬就开始计划国庆去哪了,中间连续换了好几个地方,先是打算去凤凰,后来问了问情况之后发现不仅房间价格400多...
    leabear阅读 3,056评论 0 1
  • 原来真的有人不读研也能在3年赚得盆满钵满,再去开始新的旅行,再脱产到最好的学校继续学习。 突然意识到,我从不清楚生...
    字退之阅读 1,274评论 0 0
  • 又到周未,心中是无比的轻松。 “去书店买书吧,两張购书卡马上到期了。”孩子说。稚嫩的脸上写满对书的期待。 “好来。...
    清风8833阅读 1,756评论 0 0

友情链接更多精彩内容