美文网首页
iOS 部分界面强制屏幕横屏

iOS 部分界面强制屏幕横屏

作者: 慕言的世界 | 来源:发表于2018-01-20 16:12 被阅读24次

不赘述直接切入本次话题部分界面屏幕横屏

因为是部分界面屏幕横屏故我们先设置项目只能竖屏,如下:
AppDelegate.h文件中带么设置 如下:

//.h文件夹添加属性
@property (nonatomic,assign)BOOL isCanRotation;//是否可旋转
//.m文件中
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    if (_ isCanRotation){//默认是NO故不可旋转
//这里设置屏幕旋转的方向
        return  UIInterfaceOrientationMaskLandscapeRight;
    } else {
        return UIInterfaceOrientationMaskPortrait;
    }
}

其实选中工程 ->General->Deployment info ->Device Orientation 只要勾选Portrait也可禁止横屏。
但是要求部分界面横屏所以不能固定死。

在需要横屏的界面 或者点击事件下添加图下代码即可:

//设置横屏
    NSNumber *orientationTarget = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeRight];
    [[UIDevice currentDevice] setValue:orientationTarget forKey:@"orientation"];

//设置竖屏
    NSNumber *orientationTarget = [NSNumber numberWithInt:UIInterfaceOrientationPortrait];
    [[UIDevice currentDevice] setValue:orientationTarget forKey:@"orientation"];

这样就很简单的完成部分界面横屏的强制转换了。

话题未完!!!

有的小伙伴可能会遇到以下一个问题:

问题描述

有A、B俩个界面,从A界面到B界面要求B界面立即横屏,返回的时候A界面是竖屏的。
在B界面的时候,如果你在点击返回事件前手机是竖屏的,那么你会发现当你点击返回的时候屏幕并没有真正的竖屏。

原因分析

因为手机物理竖屏的时候系统获取的当前状态就是竖屏了,所以当你点击返回A界面竖屏的时候屏幕并没有真正的竖屏。

解决方法

只要干扰手机获取当前的物理状态就好了。

    NSNumber *orientationUnknown = [NSNumber numberWithInt:UIInterfaceOrientationUnknown];
    [[UIDevice currentDevice] setValue:orientationUnknown forKey:@"orientation"];

在设置屏幕状态前加上Unknown 状态即可

相关文章

  • iOS 部分界面强制屏幕横屏

    不赘述直接切入本次话题部分界面屏幕横屏 因为是部分界面屏幕横屏故我们先设置项目只能竖屏,如下:在AppDelega...

  • iOS 横竖屏处理

    开发中有竖屏和横屏的界面时,我们需要监听屏幕旋转,强制横屏,锁定方向后的屏幕强制旋转等处理.以下做个总结: 一.横...

  • iOS零散知识点总结

    1.设置屏幕常亮 2.竖屏应用中部分界面强制转横屏 AppDelegate 类 某个类需要横竖屏切换,在类中实现 ...

  • iOS 部分界面强制横屏与强制竖屏

    最新屏幕强制旋转详见 强制横屏(此方法为旋转视图) 恢复竖屏

  • iOS强制横屏

    iOS强制横屏

  • iOS 屏幕旋转控制

    /** 屏幕旋转控制 allowRotateType ==(0强制竖屏,1横竖屏,2~强制横屏 )*/ (UIIn...

  • 横竖屏

    需求: 让push的ViewController界面强制横屏 一、配置 二、添加强制横屏方法 pragma mar...

  • 横竖屏切换 (swift)

    一. 需求 APP中需要支持横屏和竖屏,并在不同的页面 可支持的屏幕旋转方向不一致 整体竖屏,部分强制横屏 整体横...

  • iOS 视频横竖屏窗口解决方案

    1.其他界面是竖屏,有个界面只支持横屏 #pragma mark 强制横屏的方法 - (BOOL)shouldAu...

  • iOS屏幕方向,屏幕旋转,强制横屏

    1.控制屏幕方向的方式 全局项目配置屏幕方向,可以有三个地方控制 1.项目配置直接勾选 一般我们只支持竖屏 2.更...

网友评论

      本文标题:iOS 部分界面强制屏幕横屏

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