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

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

作者: 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