iOS 指定部分页面可屏幕旋转

本文介绍如何在iOS应用中实现特定页面支持屏幕旋转功能,而其他页面保持固定方向。通过设置项目的旋转选项,并在需要旋转的ViewController中重写方法来实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下转载在简书 ,原文链接:http://www.jianshu.com/p/11fe95ec1159

需求

让app中某一个或者某几个页面可以支持屏幕旋转,但是登录页面,主页面等大部分页面不支持屏幕旋转。

开干

第一步 设置app可以支持屏幕旋转

在Xcode project的general这个标签下,设置app支持的屏幕旋转方向。


或者可以在在info.plist文件中设置Supported interface orientations


第二步 设置app不支持屏幕旋转

这里是在代码中设置app中所有的页面不支持屏幕旋转,(然后在个别需要旋转的页面再另设置)

需要在一个app的每个view controller中,可以分别指定当前view controller支持的旋转方向。但是这里所指的view controller,必须是root view controller或者全屏的view controller,不然相关方法是不会被调用的。

所以说,如果这个view controller是被包含在navigation controller或者tab bar controller中的时候,无法设置。需要在自定义的navigation controller或者tab bar controller中设置支持的旋转方向。

在自定义的navigation controller或者tab bar controller中重写supportedInterfaceOrientations方法


- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskPortrait;
}

这样,设置后,当前app所有页面不支持屏幕旋转。

第三步 设置部分页面可以旋转

来到需要设置的ViewController重写supportedInterfaceOrientations方法

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskLandscapeLeft;  //支持横向
}

//设置为允许旋转
- (BOOL) shouldAutorotate {
   return YES;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值