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)

#define kISiPhone6 (kISiPhone && kScreenMaxLength == 667.0) #define kISiPhone6P (kISiPhone && kScreenMaxLength == 736.0) #define kISiPhoneX (kISiPhone && kScreenMaxLength == 812.0) #define kISiPhoneXr (kISiPhone && kScreenMaxLength == 896.0) #define kISiPhoneXX (kISiPhone && kScreenMaxLength > 811.0) #define IOS8 ([[[UIDevice currentDevice] systemVersion] doubleValue] >= 8.0)


系统版本
#define IOS810 ([[[UIDevice currentDevice] systemVersion] doubleValue] >= 10.0)
适配尺寸
//6为标准适配的,如果需要其他标准可以修改
#define kScale_W(w) ((kScreenWidth)/375) * (w)
#define kScale_H(h) (kScreenHeight/667) * (h) //状态栏高度 #define kStatusBarHeight [[UIApplication sharedApplication] statusBarFrame].size.height //状态栏高度 #define StatusBarHeight (kISiPhoneX?44:20) //标签栏高度 #define kTabBarHeight (StatusBarHeight > 20 ? 83 : 49) //导航栏高度 #define kNavBarHeight (StatusBarHeight + 44) //安全区高度 #define kSafeAreaBottom (kISiPhoneX ? 34 : 0)

字体大小

#define kBoldFont(x) [UIFont boldSystemFontOfSize:x]
#define kFont(x) [UIFont systemFontOfSize:x]
颜色设置
//RGB格式
#define kRGB(r, g, b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1.0]
//RGBA格式 #define kRGBA(r, g, b, a) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:a] //随机颜色 #define kRandomColor [UIColor colorWithRed:arc4random_uniform(256)/255.0 green:arc4random_uniform(256)/255.0 blue:arc4random_uniform(256)/255.0 alpha:1.0]

系统相关
//APP对象 (单例对象)
#define kApplication [UIApplication sharedApplication]
//主窗口 (keyWindow) #define kKeyWindow [UIApplication sharedApplication].keyWindow //NSUserDefaults实例化 #define kUserDefaults [NSUserDefaults standardUserDefaults] //通知中心 (单例对象) #define kNotificationCenter [NSNotificationCenter defaultCenter] //发送通知 #define KPostNotification(name,obj,info) [[NSNotificationCenter defaultCenter]postNotificationName:name object:obj userInfo:info] //APP版本号 #define kVersion [[[NSBundle mainBundle] infoDictionary] valueForKey:@"CFBundleShortVersionString"] //系统版本号 #define kSystemVersion [[UIDevice currentDevice] systemVersion]


 常用设置

//加载图片
#define kGetImage(imageName) [UIImage imageNamed:[NSString stringWithFormat:@"%@",imageName]] //弱引用 #define kWeakSelf(type) __weak typeof(type) weak##type = type //强引用 #define kStrongSelf(type) __strong typeof(type) type = weak##type //安全调用Block #define kSafeBlock(blockName,...) ({!blockName ? nil : blockName(__VA_ARGS__);}) //加载xib #define kLoadNib(nibName) [UINib nibWithNibName:nibName bundle:[NSBundle mainBundle]] //字符串拼接 #define kStringFormat(format,...) [NSString stringWithFormat:format,##__VA_ARGS__] //属性快速声明(建议使用代码块) #define kPropertyString(name) @property(nonatomic,copy)NSString *name #define kPropertyStrong(type,name) @property(nonatomic,strong)type *name #define kPropertyAssign(name) @property(nonatomic,assign)NSInteger name // View 圆角和加边框 #define kViewBorderRadius(View, Radius, Width, Color)\ \ [View.layer setCornerRadius:(Radius)];\ [View.layer setMasksToBounds:YES];\ [View.layer setBorderWidth:(Width)];\ [View.layer setBorderColor:[Color CGColor]] // View 圆角 #define kViewRadius(View, Radius)\ \ [View.layer setCornerRadius:(Radius)];\ [View.layer setMasksToBounds:YES] //永久存储对象 #define kSetUserDefaults(object, key) \ ({ \ NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; \ [defaults setObject:object forKey:key]; \ [defaults synchronize]; \ }) //获取对象 #define kGetUserDefaults(key) [[NSUserDefaults standardUserDefaults] objectForKey:key] //删除某一个对象 #define kRemoveUserDefaults(key) \ ({ \ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; \ [defaults removeObjectForKey:_key]; \ [defaults synchronize]; \ }) //清除 NSUserDefaults 保存的所有数据 #define kRemoveAllUserDefaults [[NSUserDefaults standardUserDefaults] removePersistentDomainForName:[[NSBundle mainBundle] bundleIdentifier]]

日期时间
//获得当前的年份
#define  kCurrentYear [[NSCalendar currentCalendar] component:NSCalendarUnitYear fromDate:[NSDate date]]
//获得当前的月份 #define kCurrentMonth [[NSCalendar currentCalendar] component:NSCalendarUnitMonth fromDate:[NSDate date]] //获得当前的日期 #define kCurrentDay [[NSCalendar currentCalendar] component:NSCalendarUnitDay fromDate:[NSDate date]] //获得当前的小时 #define kCurrentHour [[NSCalendar currentCalendar] component:NSCalendarUnitHour fromDate:[NSDate date]] //获得当前的分 #define kCurrentMin [[NSCalendar currentCalendar] component:NSCalendarUnitMinute fromDate:[NSDate date]] //获得当前的秒 #define kCurrentSec [[NSCalendar currentCalendar] component:NSCalendarUnitSecond fromDate:[NSDate date]]

沙河路径

//获取沙盒 temp
#define kPathTemp NSTemporaryDirectory()
//获取沙盒 Document #define kPathDocument [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject] //获取沙盒 Cache #define kPathCache [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject] //Library/Caches 文件路径 #define kFilePath ([[NSFileManager defaultManager] URLForDirectory:NSCachesDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:nil])


 

猜你喜欢

转载自www.cnblogs.com/yxl-151217/p/10414451.html
今日推荐