当前位置:   article > 正文

iOS 常用的宏定义_ios block 宏定义

ios block 宏定义

屏幕尺寸

#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)

  1. #define kISiPhone6 (kISiPhone && kScreenMaxLength == 667.0)
  2. #define kISiPhone6P (kISiPhone && kScreenMaxLength == 736.0)
  3. #define kISiPhoneX (kISiPhone && kScreenMaxLength == 812.0)
  4. #define kISiPhoneXr (kISiPhone && kScreenMaxLength == 896.0)
  5. #define kISiPhoneXX (kISiPhone && kScreenMaxLength > 811.0)
  6. #define IOS8 ([[[UIDevice currentDevice] systemVersion] doubleValue] >= 8.0)

系统版本

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

适配尺寸

  1. //6为标准适配的,如果需要其他标准可以修改
  2. #define kScale_W(w) ((kScreenWidth)/375) * (w)
  3. #define kScale_H(h) (kScreenHeight/667) * (h)
  4. //状态栏高度
  5. #define kStatusBarHeight [[UIApplication sharedApplication] statusBarFrame].size.height
  6. //状态栏高度
  7. #define StatusBarHeight (kISiPhoneX?44:20)
  8. //标签栏高度
  9. #define kTabBarHeight (StatusBarHeight > 20 ? 83 : 49)
  10. //导航栏高度
  11. #define kNavBarHeight (StatusBarHeight + 44)
  12. //安全区高度
  13. #define kSafeAreaBottom (kISiPhoneX ? 34 : 0)

字体大小

#define kBoldFont(x) [UIFont boldSystemFontOfSize:x]
#define kFont(x) [UIFont systemFontOfSize:x]

颜色设置

  1. //RGB格式
  2. #define kRGB(r, g, b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1.0]
  3. //RGBA格式
  4. #define kRGBA(r, g, b, a) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:a]
  5. //随机颜色
  6. #define kRandomColor [UIColor colorWithRed:arc4random_uniform(256)/255.0 green:arc4random_uniform(256)/255.0 blue:arc4random_uniform(256)/255.0 alpha:1.0]

系统相关

  1. //APP对象 (单例对象)
  2. #define kApplication [UIApplication sharedApplication]
  3. //主窗口 (keyWindow)
  4. #define kKeyWindow [UIApplication sharedApplication].keyWindow
  5. //NSUserDefaults实例化
  6. #define kUserDefaults [NSUserDefaults standardUserDefaults]
  7. //通知中心 (单例对象)
  8. #define kNotificationCenter [NSNotificationCenter defaultCenter]
  9. //发送通知
  10. #define KPostNotification(name,obj,info) [[NSNotificationCenter defaultCenter]postNotificationName:name object:obj userInfo:info]
  11. //APP版本号
  12. #define kVersion [[[NSBundle mainBundle] infoDictionary] valueForKey:@"CFBundleShortVersionString"]
  13. //系统版本号
  14. #define kSystemVersion [[UIDevice currentDevice] systemVersion]

 常用设置

  1. //加载图片
  2. #define kGetImage(imageName) [UIImage imageNamed:[NSString stringWithFormat:@"%@",imageName]]
  3. //弱引用
  4. #define kWeakSelf(type) __weak typeof(type) weak##type = type
  5. //强引用
  6. #define kStrongSelf(type) __strong typeof(type) type = weak##type
  7. //安全调用Block
  8. #define kSafeBlock(blockName,...) ({!blockName ? nil : blockName(__VA_ARGS__);})
  9. //加载xib
  10. #define kLoadNib(nibName) [UINib nibWithNibName:nibName bundle:[NSBundle mainBundle]]
  11. //字符串拼接
  12. #define kStringFormat(format,...) [NSString stringWithFormat:format,##__VA_ARGS__]
  13. //属性快速声明(建议使用代码块)
  14. #define kPropertyString(name) @property(nonatomic,copy)NSString *name
  15. #define kPropertyStrong(type,name) @property(nonatomic,strong)type *name
  16. #define kPropertyAssign(name) @property(nonatomic,assign)NSInteger name
  17. // View 圆角和加边框
  18. #define kViewBorderRadius(View, Radius, Width, Color)\
  19. \
  20. [View.layer setCornerRadius:(Radius)];\
  21. [View.layer setMasksToBounds:YES];\
  22. [View.layer setBorderWidth:(Width)];\
  23. [View.layer setBorderColor:[Color CGColor]]
  24. // View 圆角
  25. #define kViewRadius(View, Radius)\
  26. \
  27. [View.layer setCornerRadius:(Radius)];\
  28. [View.layer setMasksToBounds:YES]
  29. //永久存储对象
  30. #define kSetUserDefaults(object, key) \
  31. ({ \
  32. NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; \
  33. [defaults setObject:object forKey:key]; \
  34. [defaults synchronize]; \
  35. })
  36. //获取对象
  37. #define kGetUserDefaults(key) [[NSUserDefaults standardUserDefaults] objectForKey:key]
  38. //删除某一个对象
  39. #define kRemoveUserDefaults(key) \
  40. ({ \
  41. NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; \
  42. [defaults removeObjectForKey:_key]; \
  43. [defaults synchronize]; \
  44. })
  45. //清除 NSUserDefaults 保存的所有数据
  46. #define kRemoveAllUserDefaults [[NSUserDefaults standardUserDefaults] removePersistentDomainForName:[[NSBundle mainBundle] bundleIdentifier]]


日期时间

  1. //获得当前的年份
  2. #define kCurrentYear [[NSCalendar currentCalendar] component:NSCalendarUnitYear fromDate:[NSDate date]]
  3. //获得当前的月份
  4. #define kCurrentMonth [[NSCalendar currentCalendar] component:NSCalendarUnitMonth fromDate:[NSDate date]]
  5. //获得当前的日期
  6. #define kCurrentDay [[NSCalendar currentCalendar] component:NSCalendarUnitDay fromDate:[NSDate date]]
  7. //获得当前的小时
  8. #define kCurrentHour [[NSCalendar currentCalendar] component:NSCalendarUnitHour fromDate:[NSDate date]]
  9. //获得当前的分
  10. #define kCurrentMin [[NSCalendar currentCalendar] component:NSCalendarUnitMinute fromDate:[NSDate date]]
  11. //获得当前的秒
  12. #define kCurrentSec [[NSCalendar currentCalendar] component:NSCalendarUnitSecond fromDate:[NSDate date]]

沙河路径

  1. //获取沙盒 temp
  2. #define kPathTemp NSTemporaryDirectory()
  3. //获取沙盒 Document
  4. #define kPathDocument [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]
  5. //获取沙盒 Cache
  6. #define kPathCache [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]
  7. //Library/Caches 文件路径
  8. #define kFilePath ([[NSFileManager defaultManager] URLForDirectory:NSCachesDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:nil])
 
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/223833
推荐阅读
  

闽ICP备14008679号