ios开发 新项目时可能用到的宏定义

2019-01-10  本文已影响33人  有O梦想的咸鱼

当有多个服务器时:

#define QY_PRODUCT_VERSION 1// 1:表示正式服务器2:表示测试服务器 其他:...
#if QY_PRODUCT_VERSION == 1
#define URLHead                 @"正式服务器地址"
#define QYAccessKey             @""
#define JG_appKey               @""

#elif QY_PRODUCT_VERSION == 2

#define URLHead                 @"测试服务器地址"
#define QYAccessKey             @""
#define JG_appKey               @""

#elif QY_PRODUCT_VERSION == ...

#else

#define URLHead                 @"其他服务器地址"
#define QYAccessKey             @""
#define JG_appKey               @""

#endif

简单的打印log日志

#ifdef DEBUG
#define QYLog(...) NSLog(__VA_ARGS__)
#else
#define QYLog(...)
#endif

屏幕尺寸

#define WIDTH  ([UIScreen mainScreen].bounds.size.width)
#define HEIGHT ([UIScreen mainScreen].bounds.size.height)

设备类型

#define IS_IPAD   (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define IS_RETINA ([[UIScreen mainScreen] scale] >= 2.0)
#define IS_SUPER_RETINA ([[UIScreen mainScreen] scale] == 3.0)

屏幕类型

#define IS_IPHONE_4_OR_LESS (IS_IPHONE && SCREEN_MAX_LENGTH < 568.0)
#define IS_IPHONE_5  (IS_IPHONE && SCREEN_MAX_LENGTH == 568.0)
#define IS_IPHONE_6  (IS_IPHONE && SCREEN_MAX_LENGTH == 667.0)
#define IS_IPHONE_6P (IS_IPHONE && SCREEN_MAX_LENGTH == 736.0)
#define IS_IPHONE_X  (IS_IPHONE && SCREEN_MAX_LENGTH == 812.0)
#define IS_IPHONE_XR (IS_IPHONE && SCREEN_MAX_LENGTH == 896.0 && IS_RETINA)
#define IS_IPHONE_XS_MAX (IS_IPHONE && SCREEN_MAX_LENGTH == 896.0 && IS_SUPER_RETINA)

底部tabbar增加的高度

#define TabBarHeightAdded \
({ \
CGFloat addedH = 0; \
if (IS_IPHONE_X) { \
addedH = 34; \
} else if (IS_IPHONE_XR) { \
addedH = 34; \
} else if (IS_IPHONE_XS_MAX) { \
addedH = 34; \
} \
(addedH); \
}) \

状态栏高度

#define phoneStatusHeight \
({ \
CGFloat addedH = 20; \
if (IS_IPHONE_X) { \
addedH = 44; \
} else if (IS_IPHONE_XR) { \
addedH = 44; \
} else if (IS_IPHONE_XS_MAX) { \
addedH = 44; \
} \
(addedH); \
}) \

适配比例

// 适配比例 (UI效果图以 iPhone 6 (375x667)屏幕像素大小为尺寸基础时)
#define WIDTH_SCALE  (IS_IPHONE_4_OR_LESS ? (320.0 / 375.0) : (WIDTH / 375.0))
#define HEIGHT_SCALE (IS_IPHONE_4_OR_LESS ? (568.0 / 667.0) : (HEIGHT / 667.0))

#define NAVIGATION_BAR_HEIGHT (IS_IPHONE_X || IS_IPHONE_XR || IS_IPHONE_XS_MAX ? 88.0 : 64.0)
#define TAB_BAR_HEIGHT        (IS_IPHONE_X || IS_IPHONE_XR || IS_IPHONE_XS_MAX ? (49.0 + 34.0) : 49.0)

颜色

#define RGBA_COLOR(R, G, B, A) [UIColor colorWithRed:((R) / 255.0f) green:((G) / 255.0f) blue:((B) / 255.0f) alpha:A]
//16进制颜色
#define UIColorFromHex(s)  [UIColor colorWithRed:(((s & 0xFF0000) >> 16))/255.0 green:(((s &0xFF00) >>8))/255.0 blue:((s &0xFF))/255.0 alpha:1.0]

弱引用

#define TYPE_WEAK_SELF __weak typeof(self) weakSelf = self

判断空值

#define IS_NULL_STRING(String) ([String isKindOfClass:[NSNull class]] || String == nil || [String isEqualToString:@""])
上一篇 下一篇

猜你喜欢

热点阅读