经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 移动开发 » iOS » 查看文章
iOS 常用的宏定义
来源:cnblogs  作者:hollow_小磊  时间:2019/2/22 9:23:36  对本文有异议

屏幕尺寸

#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. 适配尺寸
  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]
  1. #define kFont(x) [UIFont systemFontOfSize:x]
  1. 颜色设置
  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)[View.layer setCornerRadius:(Radius)];[View.layer setMasksToBounds:YES];[View.layer setBorderWidth:(Width)];[View.layer setBorderColor:[Color CGColor]]
  19. // View 圆角
  20. #define kViewRadius(View, Radius)[View.layer setCornerRadius:(Radius)];[View.layer setMasksToBounds:YES]
  21. //永久存储对象
  22. #define kSetUserDefaults(object, key) ({ NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject:object forKey:key]; [defaults synchronize]; })
  23. //获取对象
  24. #define kGetUserDefaults(key) [[NSUserDefaults standardUserDefaults] objectForKey:key]
  25. //删除某一个对象
  26. #define kRemoveUserDefaults(key) ({ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults removeObjectForKey:_key]; [defaults synchronize]; })
  27. //清除 NSUserDefaults 保存的所有数据
  28. #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])


  1.  

原文链接:http://www.cnblogs.com/yxl-151217/p/10414451.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号