美文网首页
iOS状态栏和导航栏适配

iOS状态栏和导航栏适配

作者: yaoyao妖妖 | 来源:发表于2017-12-27 16:50 被阅读32次
    屏幕快照 2017-12-27 16.35.57.png
    1.简介:

    如图:在一个App的页面中红色+蓝色是整个可见的区域,但是蓝色的区域的才是真正的内容展示区(各种信息的展示这个区域是包含了导航栏的)。

    2.原理:

    适配的根本目标就是获取蓝色的这部分的其实坐标。所以在项目的基类里面设置一个参数iosChangeFloat用来代表导航栏之上的距离。

    3.系统和手机蓝色部分的情况:
    3.1不同系统

    在iOS7.0之后,苹果开始对ViewController 采用全屏布局,就是ViewController 是填满整个屏幕的,包括StatusBar(20)、NavigationBar(44)、TabBar(49)、ToolBar(44),
    但是一般来说我们一般可以拖动的区域是在导航栏之下的界面,而且刷新的功能一般是隐藏在导航栏之下的,在整个项目适配的时候,一般需要布局的部分需要单独的区分出来,这个时候就需要获取下这个需要布局部分的位置了。

    屏幕快照 2017-12-27 16.22.14.png
    3.2不同版本的手机

    在iPhoneX这个布局又有了变化
    状态栏高度由20pt变成44pt,留意这个距离就能避开“刘海”的尴尬,相应的导航栏以上变化64->88。


    屏幕快照 2017-12-27 16.28.46.png
           if (IOSVersion < 7.0) {
                self.iosChangeFloat = 0;
            }else{
                self.iosChangeFloat = 20;
            }        
             if (kDevice_iPhoneX) {
                self.iosChangeFloat = 44;
            }
    
    4.总结:通过这个参数(iosChangeFloat)就可以轻松的找到屏幕中真正的显示的区域了,而不需要考虑不同系统和版本导致的页面的偏移问题了。在刚进行iPhoneX适配的时候,发现网上的很多的文档都是对UIScrollerView偏移的适配,但是我的项目没有出现这个问题,在这个主要是项目里面的导航栏是自定义了,所以没有出现网上的那种问题,其实为了适应苹果频繁的更新,最好是使用基本的控件对导航栏进行自定义。

    相关文章

      网友评论

          本文标题:iOS状态栏和导航栏适配

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