最近一直在做跟视频播放有关的App,在开发中,发现了许多与横竖屏有关的问题,下面会一一给大家介绍,为新手减少一些不必要的麻烦:
1.如何进行横竖屏适配
很简单,按图所示即可

这样操作就可以让整个App所有页面都适配上横竖屏了,但是,这样会发现一个问题,在App内,只需几个或者一个页面适配横竖屏即可,这样该如何操作呢?
2.让需要的页面适配横竖屏
如何让仅仅需要的适配的页面适配横竖屏呢?
第一步:创建一个助手类



此助手类主要作用是控制是否进行横竖屏,当需要横竖屏时,置为YES,否则人置为NO;
第二步:在Appdelagate内部控制App是否进行横竖屏

在- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window内部写入代码控制横竖屏
进行这样操作之后,因为助手初始化默认值为NO,所以整个App又被强制竖屏了
紧接着,我们只需要在需要打开横竖屏的控制器内将助手类置为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强行竖屏掉

这样,你就可以随心所欲的控制整个App内所有的页面进行横竖屏了
怕有些新手还是不太懂,附上github内的demo链接(https://github.com/Songxiaolong/anyway),希望对大家有帮助
网友评论