IOS开发一些方便宏的集锦
2013-10-21 11:37
288 查看
有些宏是我自己写的,有些是从别人那里摘抄的。现在汇总起来分享给大家。
#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]
#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]
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- C/C++ 宏详细解析
- 深入探讨:宏、内联函数与普通函数的区别
- C++十六进制宏的用法详解
- IOS开发环境windows化攻略
- 枚举和宏的区别详细解析
- 浅析c++ 宏 #val 在unicode下的使用
- 探讨Android与iOS,我们将何去何从?
- 如何在C语言的宏中使用类型关键字
- IOS 身份证校验详细介绍及示例代码
- iOS NSDate中关于夏令时的坑
- Objective-C 消息传递机制详解
- iOS内存错误EXC_BAD_ACCESS的解决方法
- 从 Auto Layout 的布局算法谈性能
- 浅谈 MVC、MVP 和 MVVM 架构模式
- 深入解析 ObjC 中方法的结构
- 你真的了解 load 方法么?
- 从源代码看 ObjC 中消息的发送