• 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

  • 相关阅读:
    园 首页 新随笔 联系 管理 订阅 订阅 RTSP协议转换RTMP直播协议
    sequence diagram
    Model Binding
    asp.net mvc
    系统日志和异常的处理①
    随机森林之oob error 估计
    Extjs相关知识点梳理
    Extjs报错处理
    webbrowser在html中写入内容并添加js
    tcpdump一个命令的剖析
  • 原文地址:https://www.cnblogs.com/leonlincq/p/7722284.html
Copyright © 2020-2023  润新知