iOS开发经常使用宏定义



iOS开发中经常须要获取屏幕宽度高度,为view设置颜色,为imgagView设置图片等,我们都可定义一些宏,随时都可拿来使用,方便开发

  1. <span style="font-size:18px;">#ifndef FingerTips_Macro_Config_h
  2. #define FingerTips_Macro_Config_h
  3.  
  4. //获取屏幕 宽度、高度
  5. #define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)
  6. #define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height)
  7.  
  8. //DEBUG 模式下打印日志,当前行
  9. #ifdef DEBUG
  10. #define NSLog(format, ...) do { \
  11. fprintf(stderr, "<%s : %d> %s\n", \
  12. [[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], \
  13. __LINE__, __func__); \
  14. (NSLog)((format), ##__VA_ARGS__); \
  15. fprintf(stderr, "-------\n"); \
  16. } while (0)
  17. #else
  18. #define NSLog(...)
  19. #endif
  20. //推断是否 Retina屏、设备是否%fhone 5、是否是iPad
  21. #define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ?
  22.  
  23. CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : NO)
  24. #define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
  25. #define isPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
  26.  
  27. //获取系统版本号
  28. #define IOS_VERSION [[[UIDevice currentDevice] systemVersion] floatValue]
  29. #define CurrentSystemVersion [[UIDevice currentDevice] systemVersion]
  30.  
  31. //推断是真机还是模拟器
  32. #if TARGET_OS_IPHONE
  33. //iPhone Device
  34. #endif
  35.  
  36. #if TARGET_IPHONE_SIMULATOR
  37. //iPhone Simulator
  38. #endif
  39.  
  40. //检查系统版本号
  41. #define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
  42. #define SYSTEM_VERSION_GREATER_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
  43. #define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
  44. #define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
  45. #define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)
  46.  
  47. //读取本地图片
  48. #define LOADIMAGE(file,ext) [UIImage imageWithContentsOfFile:[[NSBundle mainBundle]pathForResource:file ofType:ext]]
  49.  
  50. //定义UIImage对象
  51. #define IMAGE(imageName) [UIImage imageNamed:[NSString stringWithFormat:@"%@",imageName]]
  52.  
  53. // rgb颜色转换(16进制->10进制)
  54. #define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
  55.  
  56. // 获取RGB颜色
  57. #define RGBA(r,g,b,a) [UIColor colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:a]
  58. #define RGB(r,g,b) RGBA(r,g,b,1.0f)
  59.  
  60. // 获取屏幕大小
  61. #define kDeviceWidth [UIScreen mainScreen].bounds.size.width
  62. #define KDeviceHeight [UIScreen mainScreen].bounds.size.height
  63.  
  64. #define IS_IOS7 (([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)? (YES):(NO))
  65. #define IS_IOS6 (([[[UIDevice currentDevice] systemVersion] floatValue] >= 6.0)?
  66.  
  67. (YES):(NO))
  68. #define IS_4INCH ([UIScreen instancesRespondToSelector:@selector(currentMode)] ?
  69.  
  70. CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
  71.  
  72. //释放内存
  73. #define RELEASE_SAFE(_Pointer) do{[_Pointer release],_Pointer = nil;}while(0)
  74. #endif
  75. </span>

iOS开发经常使用宏定义的更多相关文章

  1. iOS开发常见的宏定义(实用)

    iOS开发过程中使用一些常用的宏可以提高开发效率,提高代码的重用性:将这些宏放到一个头文件里然后再放到工程中的-Prefix.pch文件中(或者直接放到-Prefix.pch中)直接可以使用,灰常方便 ...

  2. IOS 程序员开发最常用宏定义

    网上对IOS的宏定义比较多,我总结了一些最常用的宏,后续还会继续补上. 1.首次启动判断: #define First_Launched @"firstLaunch" 2.ios7 ...

  3. ios开发之常用宏的定义

    有些时候,我们需要将代码简洁化,这样便于读代码.我们可以将一些不变的东东抽取出来,将变化的东西作为参数.定义为宏,这样在写的时候就简单多了. 下面例举了一些常用的宏定义和大家分享: 1. 判断设备的操 ...

  4. iOS 7:漫谈#define 宏定义(转)

    iOS :漫谈#define 宏定义 #define宏定义在C系开发中可以说占有举足轻重的作用.底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步 ...

  5. iOS 7:漫谈#define 宏定义

           #define宏定义在C系开发中可以说占有举足轻重的作用.底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步难行.而在更高层级进行开 ...

  6. Swift开发之 ---- Swift宏定义

    swift中没有了#Define这种宏定义了,可以用let来声明常量来取代,判断当前系统版本 let IS_IOS7 = (UIDevice.currentDevice().systemVersion ...

  7. iOS中常用的宏定义

    转自http://www.jianshu.com/p/be00c3f3cafd //字符串是否为空 #define kStringIsEmpty(str) ([str isKindOfClass:[N ...

  8. 【iOS开发-图层】自己定义图层的两种方式

    想要自己定义图层,仅仅须要构建一个类继承CALayer方法 假设让自己定义图层初始化上面就有画好的图形.有两种办法 重写drawInContext方法 自己定义的图层以下的方法.然后必须自己定义的图层 ...

  9. iOS开发-使用宏自定义输出(NSLog)

    前言: 1)输出日志是会大量损耗系统性能 2)输出的信息很容易会被截取到,导致信息不安全. 所以我们会在发行版(Release)取消所有的Log.如果一行一行地去注释掉Log,显然不是一个明确的选择. ...

随机推荐

  1. 凡客副总裁崔晓琦离职 曾负责旗下V+商城项目_科技_腾讯网

    凡客副总裁崔晓琦离职 曾负责旗下V+商城项目_科技_腾讯网 凡客副总裁崔晓琦离职 曾负责旗下V+商城项目 腾讯科技[微博]乐天2013年09月18日12:44 分享 微博 空间 微信 新浪微博 邮箱 ...

  2. 模式匹配KMP

    字符串朴素模式匹配算法的2种实现: //1.朴素的模式匹配算法,用while实现 int StrStr_While(const char* pStr, const char* pSub, int* p ...

  3. UVA 10905 Children's Game 孩子的游戏 贪心

    题意:给出N个数,要求把它们拼凑起来,让得到的数值是最大的. 只要分别比较两个数放前与放后的值的大小,排序后输出就可以了. 比如123和56,就比较12356和56123的大小就行了. 写一个比较函数 ...

  4. 关于apche无缘无故个启动不了,解决方法

    1. 对于用户不小心把apache下的conf文件不小心给修改了,可那会导致,启动不了apache, 解决办法可以重新下载一个, 64为  32位  下载地址 http://www.veryhuo.c ...

  5. Matlab中S函数建立与应用

    function [sys,x0,str,ts] = sfuntmpl(t,x,u,flag) % SFUNTMPL 是M-文件 S函数模板 %  通过剪裁,用户可以生成自己的S函数,不过一定要重新命 ...

  6. hibernate 配置文件 和一个 id生成类BaseEntity.java 和一个hibernate工具类 HibernatUtils.java

    package com; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate ...

  7. 数据库神器:Navicat Premium

    Navicat premium是一款数据库管理工具.将此工具连接数据库,你可以从中看到各种数据库的详细信息.包括报错,等等.当然,你也可以通过他,登陆数据库,进行各种操作.Navicat Premiu ...

  8. 我的Python成长之路---第一天---Python基础(1)---2015年12月26日(雾霾)

    2015年12月26日是个特别的日子,我的Python成之路迈出第一步.见到了心目中的Python大神(Alex),也认识到了新的志向相投的伙伴,非常开心. 尽管之前看过一些Python的视频.书,算 ...

  9. 青云B轮获2000万美元VC的背后逻辑:用技术超越巨头

    http://www.lagou.com/gongsi/31164.html http://capital.chinaventure.com.cn/11/7/1389263145.shtml

  10. Docker学习笔记(3) — docker仓库的镜像怎么删除

    docker越来越炙手可热,如果你的团队已经准备开始使用docker,那么私有仓库是必不可少的东西,首先是可以帮助你加快从服务器pull镜像的速度,其次也可以帮助你存放私有的镜像,本文主要为大家介绍如 ...