iOS 常用的宏定义

屏幕尺寸

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

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

手机型号

#define kISiPhone (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)

#define kScreenMaxLength (MAX(kScreenWidth, kScreenHeight))

#define kScreenMinLength (MIN(kScreenWidth, kScreenHeight))

#define kISiPhone5 (kISiPhone && kScreenMaxLength == 568.0)

#definekISiPhone6 (kISiPhone && kScreenMaxLength == 667.0)

#definekISiPhone6P (kISiPhone && kScreenMaxLength == 736.0)

#definekISiPhoneX (kISiPhone && kScreenMaxLength == 812.0)

#definekISiPhoneXr (kISiPhone && kScreenMaxLength == 896.0)

#definekISiPhoneXX (kISiPhone && kScreenMaxLength > 811.0)

#defineIOS8 ([[[UIDevice currentDevice] systemVersion] doubleValue] >= 8.0)系统版本

#defineIOS810 ([[[UIDevice currentDevice] systemVersion] doubleValue] >= 10.0)

适配尺寸

//6为标准适配的,如果需要其他标准可以修改

#definekScale_W(w) ((kScreenWidth)/375) * (w)

#definekScale_H(h) (kScreenHeight/667) * (h)//状态栏高度

#definekStatusBarHeight [[UIApplication sharedApplication] statusBarFrame].size.height//状态栏高度

#defineStatusBarHeight (kISiPhoneX?44:20)//标签栏高度

#definekTabBarHeight (StatusBarHeight > 20 ? 83 : 49)//导航栏高度

#definekNavBarHeight (StatusBarHeight + 44)//安全区高度

#definekSafeAreaBottom (kISiPhoneX ? 34 : 0)

字体大小

#definekBoldFont(x) [UIFont boldSystemFontOfSize:x]

#definekFont(x) [UIFont systemFontOfSize:x]

颜色设置

//RGB格式

#definekRGB(r, g, b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1.0]//RGBA格式

#definekRGBA(r, g, b, a) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:a]

//随机颜色

#definekRandomColor [UIColor colorWithRed:arc4random_uniform(256)/255.0 green:arc4random_uniform(256)/255.0 blue:arc4random_uniform(256)/255.0 alpha:1.0]

系统相关

//APP对象 (单例对象)

#definekApplication [UIApplication sharedApplication]//主窗口 (keyWindow)

#definekKeyWindow [UIApplication sharedApplication].keyWindow//NSUserDefaults实例化

#definekUserDefaults [NSUserDefaults standardUserDefaults]//通知中心 (单例对象)

#definekNotificationCenter [NSNotificationCenter defaultCenter]//发送通知

#defineKPostNotification(name,obj,info) [[NSNotificationCenter defaultCenter]postNotificationName:name object:obj userInfo:info]

//APP版本号

#definekVersion [[[NSBundle mainBundle] infoDictionary] valueForKey:@"CFBundleShortVersionString"]

//系统版本号

#definekSystemVersion [[UIDevice currentDevice] systemVersion]

 常用设置

//加载图片

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

//弱引用#definekWeakSelf(type)  __weak typeof(type) weak##type = type

//强引用

#definekStrongSelf(type)  __strong typeof(type) type = weak##type

//安全调用Block

#definekSafeBlock(blockName,...) ({!blockName ? nil : blockName(__VA_ARGS__);})

//加载xib

#definekLoadNib(nibName) [UINib nibWithNibName:nibName bundle:[NSBundle mainBundle]]

//字符串拼接

#definekStringFormat(format,...) [NSString stringWithFormat:format,##__VA_ARGS__]

//属性快速声明(建议使用代码块)

#definekPropertyString(name) @property(nonatomic,copy)NSString *name

#definekPropertyStrong(type,name) @property(nonatomic,strong)type *name

#definekPropertyAssign(name) @property(nonatomic,assign)NSInteger name

日期时间

//获得当前的年份

#definekCurrentYear [[NSCalendar currentCalendar] component:NSCalendarUnitYear fromDate:[NSDate date]]

//获得当前的月份

#definekCurrentMonth [[NSCalendar currentCalendar] component:NSCalendarUnitMonth fromDate:[NSDate date]]

//获得当前的日期

#definekCurrentDay  [[NSCalendar currentCalendar] component:NSCalendarUnitDay fromDate:[NSDate date]]

//获得当前的小时

#definekCurrentHour [[NSCalendar currentCalendar] component:NSCalendarUnitHour fromDate:[NSDate date]]

//获得当前的分

#definekCurrentMin [[NSCalendar currentCalendar] component:NSCalendarUnitMinute fromDate:[NSDate date]]

//获得当前的秒

#definekCurrentSec [[NSCalendar currentCalendar] component:NSCalendarUnitSecond fromDate:[NSDate date]]

沙河路径

//获取沙盒 temp

#definekPathTemp NSTemporaryDirectory()

//获取沙盒 Document

#definekPathDocument [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]

//获取沙盒 Cache

#definekPathCache [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]

//Library/Caches 文件路径

#definekFilePath ([[NSFileManager defaultManager] URLForDirectory:NSCachesDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YESerror:nil])

你可能感兴趣的:(iOS 常用的宏定义)