有些宏是我自己写的,有些是从别人那里摘抄的。现在汇总起来分享给大家。
#define kAppDelegate ((AppDelegate *)[[UIApplication sharedApplication] delegate])
#define kAllViewHeight (kAppDelegate.window.frame.size.height-20-44)
#define ScreenWidth [[UIScreen mainScreen] bounds].size.width
#define ScreenHeight [[UIScreen mainScreen] bounds].size.height
#define NavHeight 44
//====================================================
// 用途: 软硬件检测
//====================================================
#define IS_IPHONE_5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640.f,1136.f), [[UIScreen mainScreen] currentMode].size) : NO)
#define HEIGHT_POOR (IS_IPHONE_5?88.f:0.f)
#define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640,960), [[UIScreen mainScreen] currentMode].size) : NO)
#define IsRetinaDisplay() [[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] ==2
#define IS_RESULT_NIL(__RESULT) (((__RESULT) && ((__RESULT).length > 0)) ? YES : NO)
#define INT_IOS_VERSION ([[[UIDevice currentDevice] systemVersion] intValue])
#define IS_IOS_5 (INT_IOS_VERSION?5:0)
#define IS_IOS_6 (INT_IOS_VERSION?6:0)
#define IS_IOS_7 (INT_IOS_VERSION?7:0)
//====================================================
// 用途: viewController里主视图的frame
//====================================================
// 视图的x、y、width、height、frame
#define X_FULL_SCREEN (0.f)
#define Y_FULL_SCREEN (0.f)
#define WIDTH_FULL_SCREEN (320.f)
#define HEIGHT_FULL_SCREEN (416.f + HEIGHT_POOR)
#define FRAME_FULL_SCREEN CGRectMake(X_FULL_SCREEN, Y_FULL_SCREEN, WIDTH_FULL_SCREEN, HEIGHT_FULL_SCREEN)
// navi的x、y、width、height、frame
#define X_FULL_NAVI (0.f)
#define Y_FULL_NAVI (0.f)
#define WIDTH_FULL_NAVI (320.f)
#define HEIGHT_FULL_NAVI (44.F)
#define FRAME_FULL_NAVI CGRectMake(X_FULL_NAVI, Y_FULL_NAVI, WIDTH_FULL_NAVI, HEIGHT_FULL_NAVI)
#define HEIGHT_CELL_OBJ 60.f
//打印
#ifdef DEBUG
# define DLog(...) NSLog(__VA_ARGS__)
#else
# define DLog(...) ;
#endif
//单例
#define SINGLEINSTANCE(shared) \
static dispatch_once_t onceData; \
dispatch_once(&onceData, ^{ \
if (shared == nil) { \
shared = [[self alloc] init]; \
} \
});
//国际化
#define LOCALIZEDSTRING(string) NSLocalizedString(string, string)
//====================================================
// 用途: add
//====================================================
#define ADD_SUB_VIEW_AND_RELEASE_AT_INDEX(__SUPER_VIEW, __SUB_VIEW, __IDNEX) { [(__SUPER_VIEW) insertSubview:(__SUB_VIEW) atIndex:(__IDNEX)]; }
#define ADD_SUB_VIEW_AT_CENER(__SUPER_VIEW, __SUB_VIEW, __X, __Y) { [__SUB_VIEW setFrame:CGRectMake(((__X) != -1.f)?(__X):(((__SUPER_VIEW).frame.size.width - (__SUB_VIEW).frame.size.width) *.5f), ((__Y) != -1.f)?(__Y):(((__SUPER_VIEW).frame.size.height - (__SUB_VIEW).frame.size.height) *.5f), (__SUB_VIEW).frame.size.width, (__SUB_VIEW).frame.size.height)]; [(__SUPER_VIEW) addSubview:(__SUB_VIEW)]; }
#define ADD_SUB_VIEW_AT_ORIGIN(__SUPER_VIEW, __SUB_VIEW, __X, __Y) { [(__SUB_VIEW) setFrame:CGRectMake((__X), (__Y), (__SUB_VIEW).frame.size.width, (__SUB_VIEW).frame.size.height)]; [(__SUPER_VIEW) addSubview:(__SUB_VIEW)]; }
#define ADD_SUB_VIEW_AT_ORIGIN(__SUPER_VIEW, __SUB_VIEW, __X, __Y) { [(__SUB_VIEW) setFrame:CGRectMake((__X), (__Y), (__SUB_VIEW).frame.size.width, (__SUB_VIEW).frame.size.height)]; [(__SUPER_VIEW) addSubview:(__SUB_VIEW)]; }
//====================================================
// 用途: color
//====================================================
#define COLOR_RGBA(__R, __G, __B, __A) [UIColor colorWithRed:(__R)/255.0 green:(__G)/255.0 blue:(__B)/255.0 alpha:(__A)]
#define COLOR_RGBA_3(__RGB, __A) [UIColor colorWithRed:(__RGB)/255.0 green:(__RGB)/255.0 blue:(__RGB)/255.0 alpha:(__A)]
#define COLOR_CLEAR [UIColor clearColor]
#define COLOR_RANDOM [UIColor colorWithRed:((float)(arc4random()%255) /255.f) green:((float)(arc4random()%255) /255.f) blue:((float)(arc4random()%255) /255.f) alpha:1.f]
#define COLOR_PUR COLOR_RGBA(243.f, 152.f, 0.f, 1.f)
#define COLOR_WISH COLOR_RGBA( 0.f, 158.f, 150.f, 1.f)
#define COLOR_LIKE COLOR_RGBA(231.f, 54.f, 86.f, 1.f);
//项目的背景颜色
#define ALL_BACK_FROUND_COLOR clearColor
//====================================================
// 用途: size
//====================================================
#define SIZE_WITH_IMG_AT_IMGVIEW(__OBJECT, __IMG_NAME) { [__OBJECT setFrame:CGRectMake((__OBJECT).frame.origin.x, (__OBJECT).frame.origin.y, [UIImage imageNamed:__IMG_NAME].size.width, [UIImage imageNamed:__IMG_NAME].size.height)]; [__OBJECT setImage:[UIImage imageNamed:__IMG_NAME]]; }
#define SIZE_WITH_IMG_AT_BTN(__OBJECT, __IMG_NAME_N, __IMG_NAME_HL) { [__OBJECT setFrame:CGRectMake((__OBJECT).frame.origin.x, (__OBJECT).frame.origin.y, [UIImage imageNamed:__IMG_NAME_N].size.width, [UIImage imageNamed:__IMG_NAME_N].size.height)]; [__OBJECT setBackgroundImage:[UIImage imageNamed:__IMG_NAME_N] forState:UIControlStateNormal]; [__OBJECT setBackgroundImage:[UIImage imageNamed:__IMG_NAME_HL] forState:UIControlStateHighlighted]; }
#define SIZE_WITH_IMG_AT_TEXTFIELD(__OBJECT, __IMG_NAME) { [__OBJECT setFrame:CGRectMake((__OBJECT).frame.origin.x, (__OBJECT).frame.origin.y, [UIImage imageNamed:__IMG_NAME].size.width, [UIImage imageNamed:__IMG_NAME].size.height)]; }//[__OBJECT setBackground:[UIImage imageNamed:__IMG_NAME]]; }
#define FRAME(__SUPER_OBJECT, __INTVALUE) CGRectMake((__INTVALUE), (__INTVALUE), (__SUPER_OBJECT).frame.size.width -2 * (__INTVALUE), (__SUPER_OBJECT).frame.size.height -2 * (__INTVALUE))
#define ORIGIN_WITH_VIEW(__VIEW, __X, __Y) { (__VIEW).frame = CGRectMake((__X), (__Y), (__VIEW).frame.size.width, (__VIEW).frame.size.height); }
//====================================================
// 用途: font
//====================================================
#define FONT_SYS(__SIZE) [UIFont systemFontOfSize:(__SIZE)]
#define FONT_SYS_BOLD(__SIZE) [UIFont boldSystemFontOfSize:(__SIZE)]
#define FONT_XS(__SIZE) [UIFont fontWithName:@"Helvetica" size:(__SIZE)]
#define FONT_XS_BOLD(__SIZE) [UIFont fontWithName:@"Helvetica-Bold" size:(__SIZE)]
//====================================================
// 用途: print
//====================================================
#define LOG_RECT(__OBJECT_VIEW) { NSLog(@"%g, %g, %g, %g", (__OBJECT_VIEW).frame.origin.x, (__OBJECT_VIEW).frame.origin.y, (__OBJECT_VIEW).frame.size.width, (__OBJECT_VIEW).frame.size.height); }
//====================================================
// 用途: 判断字符串是否为空
//====================================================
#define strIsEmpty(str) (str == nil || [str length]<1 ? YES : NO )
#define NSStringIsEqualToNull(str) [str isKindOfClass:[NSNull class]]
#define Btn_Set_Bg_Image_Normal(btn, imageName) \
[btn setBackgroundImage:\
[UIImage imageNamed:imageName]\
forState:UIControlStateNormal]
#define Btn_Set_Title_Color_Normal(btn, color) \
[btn setTitleColor:[UIColor color] forState:UIControlStateNormal]
#define Btn_Set_Bg_Image_Selected(btn, imageName) \
[btn setBackgroundImage:\
[UIImage imageNamed:imageName]\
forState:UIControlStateHighlighted]