zoukankan      html  css  js  c++  java
  • ios 获取导航栏和状态栏高度,针对iPhoneX

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

    有导航栏的,代码如下:

    1
    2
    3
    4
    5
    6
    //获取状态栏的rect
    CGRect statusRect = [[UIApplication sharedApplication] statusBarFrame];
    //获取导航栏的rect
    CGRect navRect = self.navigationController.navigationBar.frame;
    那么导航栏+状态栏的高度
    statusRect.size.height+navRect.size.height

    是不是很简单!!!!

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

    方法一:

    1
    2
    //获取导航栏+状态栏的高度
    #define getRectNavAndStatusHight  self.navigationController.navigationBar.frame.size.height+[[UIApplication sharedApplication] statusBarFrame].size.height

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

    1
    2
    3
    4
    5
    6
    //获取导航栏+状态栏的高度
    #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

  • 相关阅读:
    es3的语法来模拟es5的bind方法
    js判断变量的类型(使用闭包来玩一把)
    获取一组时间中的最近的日期
    可以设置超时版的的fetch
    错误排查
    如何查看Linux的CPU负载
    shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改、查)等各种操作
    Swoole server函数列表(转载)
    php的反射
    PHP共享内存
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/9516613.html
Copyright © 2011-2022 走看看