第一部分: 分类
1. NSDate + AYExtension
/** * 判断是否是今年 * * @param target 代表需要与当前时间进行对比的nsdate对象 */ + (BOOL)isThisYearWithTarget:(NSDate *)target; /** * 判断是否今天 * * @param target 代表需要与当前时间进行对比的nsdate对象 * * @return */ + (BOOL)isTodayWithTarget:(NSDate *)target; /** * 判断是否是昨天 * * @param target <#target description#> * * @return <#return value description#> */ + (BOOL)isYesterdayWithTarget:(NSDate *)target; /** * 判断是否是前天 * * @param target <#target description#> * * @return <#return value description#> */ + (BOOL)isTheDayBeforeYesterdayWithTarget:(NSDate *)target; /** * 获取今天周几 * * @return <#return value description#> */ - (NSInteger)getNowWeekday;
2. UIView + AYExtension
/** * 快速根据xib创建View */ + (instancetype)ay_viewFromXib; // 分类不能添加成员属性 // @property如果在分类里面,只会自动生成get,set方法的声明,不会生成成员属性,和方法的实现 @property (nonatomic, assign) CGFloat ay_x; @property (nonatomic, assign) CGFloat ay_y; @property (nonatomic, assign) CGFloat ay_width; @property (nonatomic, assign) CGFloat ay_height; @property (nonatomic, assign) CGSize ay_size; //中心点的x与y @property (nonatomic, assign) CGFloat ay_centerX; @property (nonatomic, assign) CGFloat ay_centerY;
3. NSObject + AYExtension
/** * 字典或对象转成JSON字符串数据 */ @property (nonatomic, copy, readonly) NSString *JSONString;
4. UIImage + AYExtension
- (instancetype)ay_circleImage; // 生成一个圆形图片 + (instancetype)ay_circleImageNamed:(NSString *)name; // 给定一个不要渲染的图片名称,生成一个最原始的图片 + (UIImage *)imageWithOriginalImageName:(NSString *)imageName; // 模糊效果(渲染很耗时间,建议在子线程中渲染) - (UIImage *)blurImage; - (UIImage *)blurImageWithMask:(UIImage *)maskImage; - (UIImage *)blurImageWithRadius:(CGFloat)radius; - (UIImage *)blurImageAtFrame:(CGRect)frame; // 灰度效果 - (UIImage *)grayScale; // 固定宽度与固定高度 - (UIImage *)scaleWithFixedWidth:(CGFloat)width; - (UIImage *)scaleWithFixedHeight:(CGFloat)height; // 平均的颜色 - (UIColor *)averageColor; // 裁剪图片的一部分 - (UIImage *)croppedImageAtFrame:(CGRect)frame; // 将自身填充到指定的size - (UIImage *)fillClipSize:(CGSize)size;
5. UITextField + AYExtension
/** 占位文字颜色 */ @property (nonatomic, strong) UIColor *ay_placeholderColor;
6. NSString + AYExtension
/** * md5加密 */ + (NSString*)md5HexDigest:(NSString*)input; /** * 根据文件名计算出文件大小 */ - (unsigned long long)ay_fileSize; /** * 生成缓存目录全路径 */ - (instancetype)cacheDir; /** * 生成文档目录全路径 */ - (instancetype)docDir; /** * 生成临时目录全路径 */ - (instancetype)tmpDir; /** * @brief 根据字数的不同,返回UILabel中的text文字需要占用多少Size * @param size 约束的尺寸 * @param font 文本字体 * @return 文本的实际尺寸 */ - (CGSize)textSizeWithContentSize:(CGSize)size font:(UIFont *)font; /** * @brief 根据文本字数/文本宽度约束/文本字体 求得text的Size * @param width 宽度约束 * @param font 文本字体 * @return 文本的实际高度 */ - (CGFloat)textHeightWithContentWidth:(CGFloat)width font:(UIFont *)font; /** * @brief 根据文本字数/文本宽度约束/文本字体 求得text的Size * @param height 宽度约束 * @param font 文本字体 * @return 文本的实际长度 */ - (CGFloat)textWidthWithContentHeight:(CGFloat)height font:(UIFont *)font;
第二部分: 工具类
1. AYFileManager (存储/读取本地数据的快捷实现)
/** 把对象归档存到沙盒里 */ +(void)saveObject:(id)object byFileName:(NSString*)fileName; /** 通过文件名从沙盒中找到归档的对象 */ +(id)getObjectByFileName:(NSString*)fileName; /** 根据文件名删除沙盒中的 plist 文件 */ +(void)removeFileByFileName:(NSString*)fileName; /** 存储用户偏好设置 到 NSUserDefults */ +(void)saveUserDefaultData:(id)data forKey:(NSString*)key; /** 读取用户偏好设置 */ +(id)readUserDefaultDataForKey:(NSString*)key; /** 删除用户偏好设置 */ +(void)removeUserDataForkey:(NSString*)key;
2. RegularUtils (包含项目常用正则表达式)
+ (NSString *)htmlShuangyinhao:(NSString *)values; + (UIColor *) colorWithHexString: (NSString *) stringToConvert; + (NSString *) nullDefultString: (NSString *)fromString null:(NSString *)nullStr; #pragma 正则匹配邮箱号 + (BOOL)checkMailInput:(NSString *)mail; #pragma 正则匹配手机号 + (BOOL)checkTelNumber:(NSString *) telNumber; #pragma 正则匹配用户密码6-18位数字和字母组合 + (BOOL)checkPassword:(NSString *) password; #pragma 正则匹配用户姓名,20位的中文或英文 + (BOOL)checkUserName : (NSString *) userName; #pragma 正则匹配用户身份证号 + (BOOL)checkUserIdCard: (NSString *) idCard; #pragma 正则匹员工号,12位的数字 + (BOOL)checkEmployeeNumber : (NSString *) number; #pragma 正则匹配URL + (BOOL)checkURL : (NSString *) url; #pragma 正则匹配昵称 + (BOOL) checkNickname:(NSString *) nickname; #pragma 正则匹配以C开头的18位字符 + (BOOL) checkCtooNumberTo18:(NSString *) nickNumber; #pragma 正则匹配以C开头字符 + (BOOL) checkCtooNumber:(NSString *) nickNumber; #pragma 正则匹配银行卡号是否正确 + (BOOL) checkBankNumber:(NSString *) bankNumber; #pragma 正则匹配17位车架号 + (BOOL) checkCheJiaNumber:(NSString *) CheJiaNumber; #pragma 正则只能输入数字和字母 + (BOOL) checkTeshuZifuNumber:(NSString *) CheJiaNumber; #pragma 车牌号验证 + (BOOL) checkCarNumber:(NSString *) CarNumber;
3. Single (快速实现一个单例)
// // Single.h // CreateTools // // Created by AY on 16/6/27. // Copyright © 2016年 Jasperay. All rights reserved. // #ifndef Single_h #define Single_h #ifdef __OBJC__ #pragma mark - 单例模式 .h文件内容 #define SingleInterface(name) +(instancetype)share##name; #pragma mark - 单例模式 .m文件内容 #if __has_feature(objc_arc) #define SingleImplementation(name) +(instancetype)share##name {return [[self alloc]init];} \ + (instancetype)allocWithZone:(struct _NSZone *)zone { \ static id instance; \ static dispatch_once_t onceToken; \ dispatch_once(&onceToken, ^{ \ instance = [super allocWithZone:zone]; \ }); \ return instance; \ } \ - (id)copyWithZone:(NSZone *)zone{return self;} \ - (id)mutableCopyWithZone:(NSZone *)zone {return self;} #else #define SingleImplementation(name) +(instancetype)share##name {return [[self alloc]init];} \ + (instancetype)allocWithZone:(struct _NSZone *)zone { \ static id instance; \ static dispatch_once_t onceToken; \ dispatch_once(&onceToken, ^{ \ instance = [super allocWithZone:zone]; \ }); \ return instance; \ } \ - (id)copyWithZone:(NSZone *)zone{return self;} \ - (id)mutableCopyWithZone:(NSZone *)zone {return self;} \ - (instancetype)retain {return self;} \ - (instancetype)autorelease {return self;} \ - (oneway void)release {} \ - (NSUInteger)retainCount {return MAXFLOAT;} \ #endif #endif #endif /* Single_h */
附上地址: http://git.oschina.net/aLonelyRoot3/AYExtension