iOS:PrefixHeader / 头文件 / 宏定义(18-03-02更)
宏定义,不一定放在PCH文件,可能放在一个.h文件,再用PCH包含进来。
1、屏幕尺寸
// 屏幕尺寸
#define kSCREEN_WIDTH [UIScreen mainScreen].bounds.size.width
#define kSCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height
2、角度
// 角度 -> 弧度
#define kDEGREES_TO_RADIANS(x) ((x) / 180.0 * M_PI)
// 弧度 -> 角度
#define kRADIANS_TO_DEGREES(x) ((x) / M_PI * 180.0)
后续补充:推荐用下面的写法会好看、好理解点,原始变量 在 原始类型 的旁边
// 弧度来源于角度(x)
#define kRADIANS_FROM_DEGREES(x) ((x) / 180.0 * M_PI)
// 角度来源于弧度(x)
#define kDEGREES_FROM_RADIANS(x) ((x) / M_PI * 180.0)
3、颜色(效果见最下“附件”)
// 随机柔和颜色
// Hue:色像 0-360度(对应0.0-1.0)。全范围。
// Saturation:饱和度 0-100(对应0.0-1.0)。越大越鲜艳,只取0.5以下。
// Brightness:亮度 0-100(对应0.0-1.0)。越大越亮,只取0.8以上。
#define kRANDOM_COLOR(colorAlpha) [UIColor colorWithHue:( arc4random() % 361 / 360.0 ) \
saturation:( arc4random() % 50 / 100.0 ) \
brightness:( arc4random() % 20 / 100.0 ) + 0.8 \
alpha:colorAlpha]
后续补充:0度 = 360度,所以可能 Hue = ( arc4random() % 360 / 359.0 ) 会准确点?
算了,反正,是随机的,没必要那么精确,而且这个随机还是伪随机,就不去改了。
后续补充2:好像有时,浅色背景 搭配 label 白色字体,会看不出来,可适当增大饱和度。
4、标签基准值。
#define kLABEL_BASE_TAG 1000
#define kIMAGEVIEW_BASE_TAG 2000
#define kBUTTON_BASE_TAG 3000
补充:标签最好不要用个位数,有的是系统预留。
最好,根据基准值Base + 偏移值Offset 。
5、调试打印
#ifdef DEBUG
#define NSLogDebug(…) NSLog(__VA_ARGS__)
#else
#define NSLogDebug(...)
#endif
N-1、附录:系统宏
1)、随机数
arc4random()
2)、小数点操作,返回原类型,浮点。不过小数点后全为0;
// 进1(大于该值的整数,2.3 = 3.0 ,-2.3 = -2.0 )
ceil(8/3.0)
// 取整(小于该值的整数,2.3 = 2.0 ,-2.3 = -3.0 )
floor(8/3.0)
// 四舍五入
round(8/3.0)
3)、绝对值、位移
// 绝对值
fabs(3.8 - 8.3)
N、附件
颜色:
1)、HSB参数意义。

2)、宏定义生成的柔和颜色

3)、S饱和度、B亮度、A透明度 设为1.0,改变H色相,从0/360.0 - 360/360.0

iOS:PrefixHeader / 头文件 / 宏定义(18-03-02更)的更多相关文章
- c语言头文件中定义全局变量的问题
c语言头文件中定义全局变量的问题 (转http://www.cnblogs.com/Sorean/) 先说一下,全局变量只能定义在 函数里面,任意函数,其他函数在使用的时候用extern声明.千万不要 ...
- [Linux][C][gcc][tips] 在头文件中定义变量引发的讨论
概述 本人的原创文章,最先发表在github-Dramalife-note中.转载请注明出处. Define variable(s) in header file referenced by mult ...
- Vc6.0头文件的定义
Vc6.0头文件的定义 #ifndef __HEADER__ #define __HEADER__ int fun(int i); #endif
- 自定义C/C++头文件以及头文件重复定义解决
今天再看二叉树的知识,看着看着就看到C/C++的头文件及头文件重复定义这一块去了.以前就看到过这个问题,但是自己一直没有用到这方面的东西,今天遇到就顺便总结一下,等以后忘了再回来看看. 首先明确一点C ...
- iOS开发经常使用宏定义
iOS开发经常使用宏定义 iOS开发中经常须要获取屏幕宽度高度,为view设置颜色,为imgagView设置图片等,我们都可定义一些宏,随时都可拿来使用,方便开发 <span style=&qu ...
- C语言头文件中定义全局变量导致重复定义错误
合作方升级SDK后,程序编译出现变量重复定义的错误,通过错误提示无法找到什么位置重复定义了,但确定是引入新SDK后才出现的错误,从SDK的头文件中查找,最终发现在头文件中定义了全局变量 我们的项目在多 ...
- iOS开发常见的宏定义(实用)
iOS开发过程中使用一些常用的宏可以提高开发效率,提高代码的重用性:将这些宏放到一个头文件里然后再放到工程中的-Prefix.pch文件中(或者直接放到-Prefix.pch中)直接可以使用,灰常方便 ...
- C语言之在头文件中定义全局变量
通常情况下,都是在C文件中定义全局变量,在头文件中声明,但是,如果我们定义的全局变量需要被很多的C文件使用的话,那么将全局变量定义在头文件里面会方便很多,那到底是如何实现的? os_var.c文件内容 ...
- iOS 7:漫谈#define 宏定义(转)
iOS :漫谈#define 宏定义 #define宏定义在C系开发中可以说占有举足轻重的作用.底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步 ...
随机推荐
- null id in com.rocky.** entry 错误处理
1. 概述 使用hibernate往mysql数据库插入记录出错如下 10:37:57,364 ERROR [AssertionFailure] an assertion failure occure ...
- vue-cli脚手架之其他文件解释
好了,脚手架目录中重要的文件基本都介绍了,但还有一个不太注意到的文件没有解释,这里也说明一下. config文件夹下的index.js,作用是不同开发环境下的参数配置(可选项很多,生产环境.开发环境. ...
- 怎么区分odd和even
odd [ɒd] 和even ['iːv(ə)n] 一个表示奇数.一个表示偶数 经常混淆. 一个记住的好方法: odd是3个字母,单数,所以表示奇数 even是4个字母,所以表示偶数
- LeetCode-Largest Rectangle in Histogram O(n) 详析-ZZ
http://www.cnblogs.com/felixfang/p/3676193.html Largest Rectangle in Histogram Given n non-negative ...
- C++11标准之右值引用(rvalue reference)
1.右值引用引入的背景 临时对象的产生和拷贝所带来的效率折损,一直是C++所为人诟病的问题.但是C++标准允许编译器对于临时对象的产生具有完全的自由度,从而发展出了Copy Elision.RVO(包 ...
- Microsoft SQL Server 数据量大 导入导出 问题汇总
问题一: 今天拿到一份有近百万条数据的Excel要导到数据库里面,我先在本地(2014)用自带Excel,然后生成脚本文件去服务器(2008)上执行:文件SQL打开不了. 解决方法: 用自带的sqlc ...
- [转]优化IIS7.5支持10万个同时请求的配置方法
通过对IIS7的配置进行优化,调整IIS7应用池的队列长度,请求数限制,TCPIP连接数等方面,从而使WEB服务器的性能得以提升,保证WEB访问的访问流畅 通过对IIS7的配置进行优化,调整IIS7应 ...
- QT网络编程UDP下C/S架构广播通信
QT有封装好的UDP协议的类,QUdpSocket,里面有我们想要的函数接口.感兴趣的话,可以看看. 先搞服务端吧,写一个子类,继承QDialog类,起名为UdpServer类.头文件要引用我们上边说 ...
- calculate fraction by oracle
QUESTION:When you meet calculate fraction in oracle SOLUTION: 1.Check out their values respectively. ...
- python 函数&条件,循环
条件if <条件判断1>: <执行1>elif <条件判断2>: <执行2>elif <条件判断3>: <执行3>else: & ...