zoukankan      html  css  js  c++  java
  • iOS----------常见宏定义

    在我们日常的项目中,合理的使用宏定义,会大大减少我们的代码量,以及代码的可读性,为方便读者使用,总结如下:

    pragma mark - Application相关

    ///=============================================================================
    /// @name Application
    ///=============================================================================
    #define APPLICATION         [UIApplication sharedApplication]
    #define APPDLE              (AppDelegate*)[APPLICATION delegate]
    #define kKeyWindow          [UIApplication sharedApplication].keyWindow
    #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 - Frame相关

    ///=============================================================================
    /// @name Frame相关
    ///=============================================================================
    // 控件尺寸比例
    #define kScreenRate         (kScreenWidth/375.f)
    // 实际尺寸
    #define kSuitSize(size)      kScreenRate * (size)
    ///=============================================================================
    

    pragma mark - 屏幕坐标、尺寸相关

    ///=============================================================================
    /// @name 屏幕坐标、尺寸相关
    ///=============================================================================
    //判断是否iPhone X
    #define IS_iPhoneX              ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)
    // 屏幕高度
    #define kScreenHeight           [[UIScreen mainScreen] bounds].size.height
    // 屏幕宽度
    #define kScreenWidth            [[UIScreen mainScreen] bounds].size.width
    // 状态栏高度
    #define kStatusBarHeight        (IS_iPhoneX ? 44.f : 20.f)
    // 顶部导航栏高度
    #define kNavigationBarHeight    44.f
    // 顶部安全距离
    #define kSafeAreaTopHeight      (IS_iPhoneX ? 88.f : 64.f)
    // 底部安全距离
    #define kSafeAreaBottomHeight   (IS_iPhoneX ? 34.f : 0.f)
    // Tabbar高度
    #define kTabbarHeight           49.f
    // 去除上下导航栏剩余中间视图高度
    #define ContentHeight           (kScreenHeight - kSafeAreaTopHeight - kSafeAreaBottomHeight - kTabbarHeight)
    ///=============================================================================
    

    pragma mark - 系统相关

    ///=============================================================================
    /// @name 系统相关
    ///=============================================================================
    // app版本号
    #define DEVICE_APP_VERSION      (NSString *)[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]
    // app Build版本号
    #define DEVICE_APP_BUILD        (NSString *)[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]
    // 系统版本号(string)
    #define DEVICE_OS_VERSION       [[UIDevice currentDevice] systemVersion]
    // 系统版本号(float)
    #define DEVICE_OS_VERSION_VALUE [DEVICE_OS_VERSION floatValue]
    ///=============================================================================
    

    pragma mark - 字体、颜色相关

    ///=============================================================================
    /// @name 字体、颜色相关
    ///=============================================================================
    #define FONT_SIZE(f)            [UIFont systemFontOfSize:(f)]
    #define FONT_BOLD_SIZE(f)       [UIFont boldSystemFontOfSize:(f)]
    #define FONT_ITALIC_SIZE(f)     [UIFont italicSystemFontOfSize:(f)]
    #define RGBCOLOR(r,g,b)         [UIColor colorWithRed:(r)/255.f green:(g)/255.f blue:(b)/255.f alpha:1.f]
    #define RGBACOLOR(r,g,b,a)      [UIColor colorWithRed:(r)/255.f green:(g)/255.f blue:(b)/255.f alpha:(a)]
    #define RandomColor             [UIColor colorWithRed:arc4random_uniform(256)/255.0 green:arc4random_uniform(256)/255.0 blue:arc4random_uniform(256)/255.0 alpha:1.0]
    #define ColorWithHex(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 - NSLog相关

    ///=============================================================================
    /// @name NSLog相关
    ///=============================================================================
    #ifdef DEBUG
    #define MLLog(...) NSLog(@"%s 第%d行 
     %@
    
    ",__func__,__LINE__,[NSString stringWithFormat:__VA_ARGS__])
    #else
    #define NSLog(...)
    #endif
    ///=============================================================================
    

    pragma mark - 判断数据是否为空

    ///=============================================================================
    /// @name 判断数据是否为空
    ///=============================================================================
    #define kStringIsEmpty(str)     ([str isKindOfClass:[NSNull class]] || str == nil || [str length] < 1 ? YES : NO )
    #define kArrayIsEmpty(array)    (array == nil || [array isKindOfClass:[NSNull class]] || array.count == 0)
    #define kDictIsEmpty(dic)       (dic == nil || [dic isKindOfClass:[NSNull class]] || dic.allKeys == 0)
    ///=============================================================================




  • 相关阅读:
    C语言基础知识-程序流程结构
    C语言基础知识-运算符与表达式
    Cloudera Certified Associate Administrator案例之Configure篇
    Python入门篇-文件操作
    gif软件(ShareX)
    BareTail(日志查看工具)
    [UGUI]游戏中的Tips贴图标边缘显示(贴边)
    Lua中的#
    ugui SetParent在安卓上一个诡异bug
    .svn文件夹特别大
  • 原文地址:https://www.cnblogs.com/KiVen2015/p/9334066.html
Copyright © 2011-2022 走看看