iOS导航栏、状态栏及Tabbar高度(区分iPhone X与其他iPhone机型)

2021-01-12 22:20:49


#define kIs_iphone (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)

#define kIs_iPhoneX kScreenWidth >=375.0f && kScreenHeight >=812.0f&& kIs_iphone

 

/*状态栏高度*/

#define kStatusBarHeight (CGFloat)(kIs_iPhoneX?(44.0):(20.0))

/*导航栏高度*/

#define kNavBarHeight (44)

/*状态栏和导航栏总高度*/

#define kNavBarAndStatusBarHeight (CGFloat)(kIs_iPhoneX?(88.0):(64.0))

/*TabBar高度*/

#define kTabBarHeight (CGFloat)(kIs_iPhoneX?(49.0 + 34.0):(49.0))

/*顶部安全区域远离高度*/

#define kTopBarSafeHeight (CGFloat)(kIs_iPhoneX?(44.0):(0))

/*底部安全区域远离高度*/

#define kBottomSafeHeight (CGFloat)(kIs_iPhoneX?(34.0):(0))

/*iPhoneX的状态栏高度差值*/

#define kTopBarDifHeight (CGFloat)(kIs_iPhoneX?(24.0):(0))

/*导航条和Tabbar总高度*/

#define kNavAndTabHeight (kNavBarAndStatusBarHeight + kTabBarHeight)


  • 2017-01-16 15:19:24

    RequireJS 入门指南

    如今最常用的JavaScript库之一是RequireJS。最近我参与的每个项目,都用到了RequireJS,或者是我向它们推荐了增加RequireJS。在这篇文章中,我将描述RequireJS是什么,以及它的一些基础场景。

  • 2017-01-16 15:22:30

    CommonJS规范

    CommonJS模块规范。 根据这个规范,每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。

  • 2017-01-17 15:42:03

    vue-cli 发布(译)

    当我们真正开发一个应用的时候,我们不可避免的会用到一大堆的工具,模块化、预处理器、热模块加载、代码校验和测试。这些工具对于一个需要长期维护的大型应用是必须的,但是项目初始化将会是让人痛苦的事情。这就是为什么我们做了 vue-cli 。

  • 2017-01-19 00:45:56

    nodejs之process进程

    虽然node对操作系统做了很多抽象的工作,但是你还是可以直接和他交互,比如和系统中已经存在的进程进行交互,创建工作子进程。node是一个用于事件循环的线程,但是你可以在这个事件循环之外创建其他的进程(线程)参与工作。

  • 2017-01-19 01:05:32

    process对象

    process对象是Node的一个全局对象,提供当前Node进程的信息。它可以在脚本的任意位置使用,不必通过require命令加载。该对象部署了EventEmitter接口。