美文网首页首页投稿(暂停使用,暂停投稿)
iOS开发常用宏定义(持续更新中)

iOS开发常用宏定义(持续更新中)

作者: iOS_渔翁 | 来源:发表于2017-11-22 09:45 被阅读34次

    有了宏, 开发方便了好多, 下面是开发中经常用到的宏, 不完整的地方, 欢迎提出来, 持续更新中...

    1. 尺寸篇

    #pragma mark --------------------- 尺寸 ----------------------------
    //屏幕的宽度
    #define kScreenWidth            [[UIScreen mainScreen] bounds].size.width
    //屏幕的高度
    #define kScreenHeight           [[UIScreen mainScreen] bounds].size.height
    
    //打包和结算的高度
    #define kAllBarHeight           40
    
    //导航栏高度
    #define kNavBarHeight           (kScreenHeight == 812 ? 88 : 64)
    
    //tabBar高度
    #define kTabBarHeight           (kScreenHeight == 812 ? 83 : 49)
    
    //NavigationBar和TabBar的高度
    #define kNBarTBarHeight         (kNavBarHeight + kTabBarHeight)
    
    //如果是iPhoneX 底部留空隙34, 如果不是空隙为0
    #define kIPhoneXBottomHeight    (kScreenHeight == 812 ? 34 : 0)
    
    //比例 以iPhone6 为基准
    #define kRatio kScreenWidth/375
    
    //按比例适配
    #define kFit(num)                 kRatio * (num)
    

    2. 颜色篇

    #pragma mark --------------->>  颜色 <<-------------------
    //随机颜色
    #define kRandomColor  [UIColor colorWithRed:arc4random() % 256 / 255. green:arc4random() % 256 / 255. blue:arc4random() % 256 / 255. alpha:1]
    
    //自定义颜色
    #define kColor(r, g, b)         [UIColor colorWithRed:(r)/256.0 green:(g)/256.0 blue:(b)/256.0 alpha:1.0]
    
    #define kRGBAColor(r, g, b, a)   [UIColor colorWithRed:(r) / 255.0 green:(g) / 255.0 blue:(b) / 255.0 alpha:(a)]
    
    //十六进制数 转UIColor
    #define kColorFromRGBHexi(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]
    
    #define HexColorInt32_t(rgbValue) \
    [UIColor colorWithRed:((float)((0x##rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((0x##rgbValue & 0x00FF00) >> 8))/255.0 blue:((float)(0x##rgbValue & 0x0000FF))/255.0  alpha:1]
    //主题颜色
    #define kThemeColor  kColorFromRGBHexi(0xe01028)
    

    3. 正则篇

    // 验证条件
    #define kAssert(Condition, Message)\
    if (!(Condition)) {\
    kShowError(Message);\
    return;\
    }
    
    // 验证是文字是否输入
    //
    // @param __Text    文字长度
    // @param __Message 错误提示
    #define kVerifyText(__TextLength, __Message)\
    if (!__TextLength) {\
    kShowError(__Message);\
    return;\
    }
    
    // 验证手机正则
    //
    // @param __Text    文字
    // @param __Message 错误提示
    #define kVerifyPhone(__Phone, __Message)\
    if (![__Phone validateMobile]) {\
    kShowError(__Message);\
    return;\
    }
    
    // 验证身份证正则
    //
    // @param __Text    文字
    // @param __Message 错误提示
    #define kIDCard(__IDCard, __Message)\
    if (![__IDCard validateIdentityCard]) {\
    kShowError(__Message);\
    return;\
    }
    

    4. 循环引用

    //上面两个宏是RAC中的
    
    #define WEAK  @weakify(self);
    
    #define STRONG  @strongify(self);
    
    #define kWeakSelf(type)__weak typeof(type)weak##type = type;
    
    #define kStrongSelf(type)__strong typeof(type)type = weak##type;
    

    5. 打印

    //由于之前做项目一直遇到控制台打印的数据不完整, 总是出现一半一半的, 遂用C语言的pritf打印, 写成了宏, 才好!方便使用!
    #ifdef DEBUG
    #define kMyLog(format, ...) printf("class: <%p %s:(%d) > method: %s \n%s\n", self, [[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, __PRETTY_FUNCTION__, [[NSString stringWithFormat:(format), ##__VA_ARGS__] UTF8String] )
    #else
    #define kMyLog(format, ...)
    #endif
    

    6. 其他

    #pragma mark  -----------------------  Other  ----------------------
    //将其他类型转换为字符串
    #define kSTR(string)                    [NSString stringWithFormat:@"%@", string]
    
    #define kUserDefaults                   [NSUserDefaults standardUserDefaults]
    
    #define ShareApplicationDelegate        [[UIApplication sharedApplication] delegate]
    
    //字号
    #define kFont(size)                     [UIFont systemFontOfSize:size]
    
    #define kURL(urlStr)                    [NSURL URLWithString:urlStr]
    
    #define kImage(image)                   [UIImage imageNamed:image]
    
    #define kShowError(message)     [MBProgressHUD showError:(message)]
    #define kShowSuccess(message)   [MBProgressHUD showSuccess:message]
    

    相关文章

      网友评论

        本文标题:iOS开发常用宏定义(持续更新中)

        本文链接:https://www.haomeiwen.com/subject/swqnvxtx.html