iOS_横竖屏适配

作者: 小白哥有话说 | 来源:发表于2016-11-07 10:23 被阅读442次

    前言:

    由于近期新浪博客无法登陆,导致个人的博客不再维护,闲来发现简书这个平台比博客更好一些,所以思虑再三,打算移植技术到简书中发展。。。

    无语了,由于账号不绑定手机的话,没办法发布文章,再加上近期生活繁忙,所以才拖到现在才可以发布,555555

    闲话不多说:直接上代码

    关于横竖屏适配问题

    1.全局定制,在下面这个地方,勾选如下:保证所有的横竖屏都支持

    再次,在AppDelegate里面定义Bool属性如为:isHeng

    则在其.m实现中写下如下方法:

    -(UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {

    if (self.isHeng) {// 横屏

    return UIInterfaceOrientationMaskLandscape;

    }else {

    return UIInterfaceOrientationMaskPortrait;

    }

    }

    2.如何保证横竖屏交互

    这样,可以保证大部分界面是竖屏模式,当遇到需要展示位横屏的界面时,如A跳到B,则

    首先在A界面跳转B界面地方修改B的isHeng 为Yes,并在A界面设置自动翻转函数为No(也即是强制翻转)

    - (BOOL)shouldAutorotate

    {

    return NO;

    }

    其次,在B界面的页面上写下如下的如:

    -(UIInterfaceOrientationMask)supportedInterfaceOrientations {

    return UIInterfaceOrientationMaskLandscape;

    }

    -(BOOL)shouldAutorotate {

    return NO;

    }

    3.横竖屏切换有个明显的问题是:横屏的情况(播放视频,股票K线图)等会隐藏状态栏,而当竖屏时又会显示,故而应在横屏界面加入以下代码即可:

    - (void)viewWillAppear:(BOOL)animated

    {

    [super viewWillAppear:animated];

    [UIApplication sharedApplication].statusBarHidden = YES;

    }

    - (void)viewWillDisappear:(BOOL)animated

    {

    [super viewWillDisappear:animated];

    [UIApplication sharedApplication].statusBarHidden = NO;

    }

    综上,横竖屏问题全部解决,

    感悟:对于类似横竖屏这样的全局问题,应该多多考虑在AppDelegate 中全局设置,类似nav在AppDelegate中全局设置的问题

    最后:附上当年的新浪博客博文目录:碉堡的程序猿的博客

    欢迎交流哦!


    于2017年7月13号第一次修改:更改内容为添加当年我的新浪博客的博文地址!

    相关文章

      网友评论

        本文标题:iOS_横竖屏适配

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