美文网首页
记录一篇关于开发中常用宏的定义

记录一篇关于开发中常用宏的定义

作者: Nulll | 来源:发表于2019-08-19 19:12 被阅读0次

    日常开发中需要用到很多的宏定义,或者是常量定义

    日常的宏定义主要包括下面

    ///1、 判断当前设配是否是刘海屏幕
    #define iPhoneX (CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(375, 812)) || CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(812, 375)) || CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(414, 896)) || CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(896, 414)))
    
    // 2、屏幕宽高以及缩放比例
    #define ScreenWidth [UIScreen mainScreen].bounds.size.width
    #define ScreenHeight [UIScreen mainScreen].bounds.size.height
    #define kScaleFactor (kScreenHeight / 667.0f)
    
    // 状态栏高度
    #define STATUS_BAR_HEIGHT (iPhoneX ? 44.f : 20.f) 
    // 导航栏高度
    #define NAVIGATION_BAR_HEIGHT (iPhoneX ? 88.f : 64.f)
    // tabBar高度
    #define TAB_BAR_HEIGHT (iPhoneX ? (49.f+34.f) : 49.f)
    // home indicator
    #define HOME_INDICATOR_HEIGHT (iPhoneX ? 34.f : 0.f)
    // 顶部多余高度
    #define ZERO_STATUS (iPhoneX ? 24.f : 0.f)
    
    /*
    这里还有一个是关于safeArea 的一些定义
    如果是竖屏的时候,safeArea = {44, 0, 34, 0}
    而横屏的时候:safeArea = = {0, 44, 21, 44}
    */
    
    3、关于打印的宏
    #ifdef DEBUG
    
    #define NSLog(FORMAT, ...) fprintf(stderr,"%s 第%d行 >>%s<<  :%s\n\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__,[[NSString stringWithFormat:@"%@", [NSDate date]] UTF8String], [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String])
    
    #else
    
    #define NSLog(...)
    
    #endif
    
    
    4、关于强弱引用的宏
    #define Weak(obj) __weak typeof(obj) obj##Weak = obj 
    
    

    相关文章

      网友评论

          本文标题:记录一篇关于开发中常用宏的定义

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