关于项目的一些细节总结-宏定义

最近项目的新需求做的差不多了,随之而来的就是短暂的空窗期,但是空窗期也不能闲着,今天现总结一下之前有关一些宏定义.

少说闲话,上点不太干的干货:

//🤔keyWindow

#define kKeyWindow [UIApplication sharedApplication].keyWindow

//🤔状态栏的高度

#define kStatusBarHeight    [[UIApplication sharedApplication] statusBarFrame].size.height

//🤔导航栏的高度

#define kNavBarHeight  44.0

//🤔iphoneX-SafeArea的高度

#define kSafeAreaHeight    ([[UIApplication sharedApplication] statusBarFrame].size.height >20?34:0)

//🤔分栏+iphoneX-SafeArea的高度

#define kTabBarHeight  (49+ kSafeAreaHeight)

//🤔导航栏+状态栏的高度

#define kTopHeight  (kStatusBarHeight + kNavBarHeight)

//🤔屏幕的宽高

#define kScreenWidth    [UIScreen mainScreen].bounds.size.width

#define kScreenHeight    [UIScreen mainScreen].bounds.size.height

//🤔屏幕大小

#define kScreenSize    [UIScreen mainScreen].bounds

#define  kTabbarSafeBottomMargin        (IS_iPhoneX ?34.f:0.f)

#define  IS_iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125,2436), [[UIScreen mainScreen] currentMode].size) : NO)

//🤔iPhoneX / iPhoneXS

#define  IS_iPhoneX_XS        (kScreenWidth ==375.f&& kScreenHeight ==812.f? YES : NO)

//🤔iPhoneXR / iPhoneXSMax

#define  IS_iPhoneXR_XSMax    (kScreenWidth ==414.f&& kScreenHeight ==896.f? YES : NO)

//🤔iPhoneX系列

#define IS_iPhoneX_Series    (IS_iPhoneX_XS || IS_iPhoneXR_XSMax)

//🤔 View/image 适配比例 (以375*667尺寸为基准)

#define kActureHeight(height)  roundf(height/375.0* kScreenW)

#define kActureWidth(Width)    roundf(Width/667.0* kScreenH)

//🤔获取手机系统的版本

#define kSystemVersion    [[[UIDevice currentDevice] systemVersion]  floatValue]

//🤔是否为iOS8及以上系统

#define kIOS8_Later    ([[UIDevice currentDevice].systemVersion doubleValue] >=8.0)

//🤔是否为iOS11及以上系统

#define kIOS11_Later    ([[UIDevice currentDevice].systemVersion doubleValue] >=11.0)

//🤔沙盒路径

#define kHomePath  NSHomeDirectory()

//🤔沙盒 Document路径

#define kPathDocument  [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]

//🤔沙盒 Cache路径

#define kPathCache  [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]

//🤔沙盒 temp路径

#define kPathTemp  NSTemporaryDirectory()

//🤔获取视图宽高XY等信息

#define kViewH(view)    view.frame.size.height

#define kViewW(view)    view.frame.size.width

#define kViewX(view)    view.frame.origin.x

#define kViewY(view)    view.frame.origin.y

//🤔常用系统颜色

#define kClearColor    [UIColor clearColor]

#define kWhiteColor    [UIColor whiteColor]

#define kBlackColor    [UIColor blackColor]

#define kGrayColor      [UIColor grayColor]

#define kGray2Color    [UIColor lightGrayColor]

#define kBlueColor      [UIColor blueColor]

#define kRedColor      [UIColor redColor]

//🤔自定义RGB颜色 (a:代表透明度,1:不透明,0:透明)

#define kRGBA(r,g,b,a)  [UIColor colorWithRed:r/255.0fgreen:g/255.0fblue:b/255.0falpha:a]

//🤔文本加粗

#define kBoldFont(FontSize)    [UIFont boldSystemFontOfSize:FontSize]

//🤔文本字号

#define kFont(FontSize)    [UIFont systemFontOfSize:FontSize]

//🤔图片付值

#define kImage(imageName) [UIImage imageNamed:[NSString stringWithFormat:@"%@",imageName]]

//🤔创建通知

#define kObserveNoti(observer, selName, notifiName)  [[NSNotificationCenter defaultCenter] addObserver:observer selector:NSSelectorFromString(selName) name:notifiName object:nil]

//🤔发送通知

#define kNotifi(x)  [[NSNotificationCenter defaultCenter] postNotificationName:x object:nil];

//🤔移除通知

#define kRemoveNotifi(name)  [[NSNotificationCenter defaultCenter] removeObserver:self name:name object:nil];

//🤔信息的本地存储

#define kUserDefaults(NSUserDefaults,userDefault)  NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];

//🤔弱化self

#define WEAKSELF    typeof(self) __weak weakSelf = self;

//🤔日志打印

#ifdef DEBUG

# define NSLog(FORMAT, ...) printf("[%s<%p>行号:%d]:\n%s\n",__FUNCTION__,self,__LINE__,[[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String])

#else

# define NSLog(FORMAT, ...)

#endif


如有差错,欢迎指正,另,欢迎留言丰富博文内容.感激不尽!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352