屏幕尺寸
#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])