美文网首页iOS技术点ios实用开发技巧iOS开发
ios 获取导航栏和状态栏高度,针对iPhoneX

ios 获取导航栏和状态栏高度,针对iPhoneX

作者: 叶熙雯 | 来源:发表于2018-03-05 16:09 被阅读749次

        因为iPhoneX的产生,原本的导航栏再也不是44了,那么会出现什么问题呢?在隐藏导航栏的页面,原本的高度要向上调整一个导航栏+状态栏的高度。那么iPhoneX的导航栏高度不是44了,我们需要手动获取,

    有导航栏的,代码如下:


    //获取状态栏的rect

        CGRect statusRect = [[UIApplication sharedApplication] statusBarFrame];

       //获取导航栏的rect

        CGRect navRect = self.navigationController.navigationBar.frame;

    那么导航栏+状态栏的高度

    statusRect.size.height+navRect.size.height


    是不是很简单!!!!

    对于项目有的很多处都需要这个代码,可以给它写成宏定义。如下

    方法一:

    //获取导航栏+状态栏的高度

    #define getRectNavAndStatusHight  self.navigationController.navigationBar.frame.size.height+[[UIApplication sharedApplication] statusBarFrame].size.height

    方法二:(用了宏定义的 参数返回)

    //获取导航栏+状态栏的高度

    #define getRectNavAndStatusHight \

    ({\

    CGRect rectStatus = [[UIApplication sharedApplication] statusBarFrame];\    CGRect rectNav = self.navigationController.navigationBar.frame;\

    ( rectStatus.size.height+ rectNav.size.height);\

    })\


    下面说说没有导航栏(对于模态视图推出):

    #define isPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO) 

    首先判断机型是不是iPhoneX,然后

    如果是iPhoneX返回88 如果不是64

    需要的人可以直接copy走吧!(如果不好用 ,把中间换行去点,这个自己给我加上的)记得帮我点点❤ 爱你哟

    相关文章

      网友评论

      • 丿ZLoveT:方法一后面的宏定义要加括号,要不然是没有效果的哦~
        丿ZLoveT:@叶熙雯 在ipad上亲测不行
        丿ZLoveT:@叶熙雯 你试试再说啊
        叶熙雯:@_再烦我就打你哦_ 没加也能用啊?
      • hehtao:为何不用safeArea呢
        叶熙雯:@hehtao 这个很是6 可以啊!
        hehtao:@叶熙雯 看看这个喽,https://www.jianshu.com/p/1432a94ef66f
        叶熙雯:@hehtao 因为我没了解到!就几个页面适配有点问题,只是找了简单的解决方法
      • ASL_D:这篇文章我做android的 都能看懂,说明写的是真的好,通俗易懂
        叶熙雯:@CodeMiracle 我应该说些什么:joy::joy::joy:
        CodeMiracle:你说的话好假哦,😄
        叶熙雯:@ASL_D 说明你在成长哦😯
      • 橡皮泥:大佬,厉害,学到了,百度半天没搞明白x的兼容
        叶熙雯:@橡皮泥 :flushed: 。。。
      • 陆壹吱吱:大佬牛逼,大佬6666,我是大佬的脑残粉:+1:
        叶熙雯:@陆壹的V博 你也写写,大佬

      本文标题:ios 获取导航栏和状态栏高度,针对iPhoneX

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