iOS----------常见宏定义
程序员文章站
2022-06-26 09:36:25
在我们日常的项目中,合理的使用宏定义,会大大减少我们的代码量,以及代码的可读性,为方便读者使用,总结如下: pragma mark - Application相关 /// /// @name Application /// #define APPLICATION [UIApplication sha ......
在我们日常的项目中,合理的使用宏定义,会大大减少我们的代码量,以及代码的可读性,为方便读者使用,总结如下:
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行 \n %@\n\n",__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) ///=============================================================================
上一篇: 智齿导致牙龈肿痛肿么破 看我来支招