美文网首页iOS开发
iOS横竖屏适配过程中碰到的问题

iOS横竖屏适配过程中碰到的问题

作者: alongDragon | 来源:发表于2017-05-05 13:35 被阅读158次

    最近一直在做跟视频播放有关的App,在开发中,发现了许多与横竖屏有关的问题,下面会一一给大家介绍,为新手减少一些不必要的麻烦:

    1.如何进行横竖屏适配

    很简单,按图所示即可

    打开App横竖屏

    这样操作就可以让整个App所有页面都适配上横竖屏了,但是,这样会发现一个问题,在App内,只需几个或者一个页面适配横竖屏即可,这样该如何操作呢?

    2.让需要的页面适配横竖屏

    如何让仅仅需要的适配的页面适配横竖屏呢?

    第一步:创建一个助手类

    创建的助手类 助手类h文件内的实现代码 助手类m文件内的实现代码

    此助手类主要作用是控制是否进行横竖屏,当需要横竖屏时,置为YES,否则人置为NO;

    第二步:在Appdelagate内部控制App是否进行横竖屏

    控制app横竖屏

    在- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window内部写入代码控制横竖屏

    进行这样操作之后,因为助手初始化默认值为NO,所以整个App又被强制竖屏了

    紧接着,我们只需要在需要打开横竖屏的控制器内将助手类置为YES即可

    将助手类置为YES即可

    进行这样的操作,我们就可以看到,需要打开的页面被打开了

    3.如何进行首页强制竖屏

    但是在我开发工程中,发现如此操作,首页总是会在横屏启动时,页面错乱掉了

    主要原因还是因为首页在启动时,其实并没有被强制竖屏

    找了一下原因,发现App在启动时,

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    会比- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window先走

    这样在App创建第一个控制器时,实际上是按照竖屏创建的,整个UI就会发生错乱

    如何进行操作呢?

    我们需要在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions内App创建之前讲App强行竖屏掉

    didFinish内将App首页强行竖屏

    这样,你就可以随心所欲的控制整个App内所有的页面进行横竖屏了

    怕有些新手还是不太懂,附上github内的demo链接(https://github.com/Songxiaolong/anyway),希望对大家有帮助

    相关文章

      网友评论

        本文标题:iOS横竖屏适配过程中碰到的问题

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