日常开发中需要用到很多的宏定义,或者是常量定义
日常的宏定义主要包括下面
///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
网友评论