• ios 日常开发常用宏定义


      #pragma mark - 字体、颜色相关
    #define kFONT_SIZE(f)            [UIFont systemFontOfSize:(f)]
    #define kFONT_BOLD_SIZE(f)       [UIFont boldSystemFontOfSize:(f)]
    #define kFONT_ITALIC_SIZE(f)     [UIFont italicSystemFontOfSize:(f)]
    #define kRGBCOLOR(r,g,b)         [UIColor colorWithRed:(r)/255.f green:(g)/255.f blue:(b)/255.f alpha:1.f]
    #define kRGBACOLOR(r,g,b,a)      [UIColor colorWithRed:(r)/255.f green:(g)/255.f blue:(b)/255.f alpha:(a)]
    #define kRandomColor             [UIColor colorWithRed:arc4random_uniform(256)/255.0 green:arc4random_uniform(256)/255.0 blue:arc4random_uniform(256)/255.0 alpha:1.0]
    #define kColorWithHex(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]
    ///=============================================================================
    
    #pragma mark - 图片加载
    // 加载图片
    #define kGetImage(imageName)                        [UIImage imageNamed:[NSString stringWithFormat:@"%@",imageName]]
    // 读取本地图片 (文件名,后缀名)
    #define kGetBundleImage(__FILENAME__,__EXTENSION__) [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:__FILENAME__ ofType:__EXTENSION__]]
    ///=============================================================================
    
    #pragma mark - 控制台打印
    #ifdef DEBUG
    #define kLog(FORMAT, ...) fprintf(stderr,"%s:%d	%s
    ",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
    #else
    #define NSLog(FORMAT, ...) nil
    #endif
    ///=============================================================================
    
    #pragma mark - 判断数据是否为空
    // 字符串是否为空
    #define kISNullString(str) ([str isKindOfClass:[NSNull class]] || str == nil || [str length] < 1 ? YES : NO )
    // 数组是否为空
    #define kISNullArray(array) (array == nil || [array isKindOfClass:[NSNull class]] || array.count == 0 ||[array isEqual:[NSNull null]])
    // 字典是否为空
    #define kISNullDict(dic) (dic == nil || [dic isKindOfClass:[NSNull class]] || dic.allKeys == 0 || [dic isEqual:[NSNull null]])
    // 是否是空对象
    #define kISNullObject(_object) (_object == nil 
    || [_object isKindOfClass:[NSNull class]] 
    || ([_object respondsToSelector:@selector(length)] && [(NSData *)_object length] == 0) 
    || ([_object respondsToSelector:@selector(count)] && [(NSArray *)_object count] == 0))
    ///=============================================================================
    
    #pragma mark - Application相关
    // APP对象 (单例对象)
    #define kApplication         [UIApplication sharedApplication]
    // APP对象
    #define kAppDelegate         (AppDelegate*)[[UIApplication sharedApplication] delegate]
    // 主窗口 (keyWindow)
    #define kKeyWindow           [UIApplication sharedApplication].keyWindow
    // NSUserDefaults实例化
    #define kUserDefaults        [NSUserDefaults standardUserDefaults]
    // 通知中心 (单例对象)
    #define kNotificationCenter  [NSNotificationCenter defaultCenter]
    //获取temp
    #define kPathTemp            NSTemporaryDirectory()
    //获取沙盒 Document
    #define kPathDocument        [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]
    //获取沙盒 Cache
    #define kPathCache           [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]
    ///=============================================================================
    
    #pragma mark - 屏幕坐标、尺寸相关
    // 判断是否iPhone X
    #define kIS_iPhoneX             UIApplication.sharedApplication.statusBarFrame.size.height > 20 : YES : NO
    // 屏幕高度
    #define kScreenHeight           [[UIScreen mainScreen] bounds].size.height
    // 屏幕宽度
    #define kScreenWidth            [[UIScreen mainScreen] bounds].size.width
    // 状态栏高度
    #define kStatusBarHeight        UIApplication.sharedApplication.statusBarFrame.size.height
    // 顶部导航栏高度
    #define kNavigationBarHeight    44.f
    // 状态栏高度 + 顶部导航栏高度
    #define kSafeAreaTopHeight      UIApplication.sharedApplication.statusBarFrame.size.height + 44
    // 底部安全距离
    #define kSafeAreaBottomHeight   (IS_iPhoneX ? 34.f : 0.f)
    // Tabbar高度
    #define kTabbarHeight           49.f
    
    // 控件尺寸比例
    #define kScreenWidthRate        ([[UIScreen mainScreen] bounds].size.width/375.f)
    // 实际宽尺寸
    #define kSuitWidthSize(size)    kScreenWidthRate * (size)
    // 控件尺寸比例
    #define kScreenHeightRate       ([[UIScreen mainScreen] bounds].size.height/667.f)
    // 实际高尺寸
    #define kSuitHeightSize(size)   kScreenHeightRate * (size)
    ///=============================================================================
    
    #pragma mark - 强弱引用
    #define kWeakSelf(type)  __weak typeof(type) weak##type = type;
    #define kStrongSelf(type)  __strong typeof(type) type = weak##type;
    
  • 相关阅读:
    python笔记之re模块学习
    python笔记之面向对象
    C# 静态类和非静态类(实例类)
    占位符的使用
    数据类型和数据类型转换
    win7 安装 memcached
    php 汉字转换成拼音
    apache window环境下本地配置虚拟主机
    在浏览器输入一个网址到得到页面的过程
    浅谈线程池ThreadPoolExecutor核心参数
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/11175706.html
Copyright © 2020-2023  润新知