这是我写的一个iOS项目基本框架。经过多个项目千锤百炼,十分简单实用。
GitHub地址:https://github.com/yjking/YJKit
初衷
为了方便新建项目的搭建,提高开发效率,于是整理了本框架。
框架包含了开发iOS APP最基本的代码,可以用于快速搭建项目,避免各种复制、混乱的宏定义等等,补充了常用方法,开发过程中十分顺手,最大程度节约开发时间。
使用
现在包含了Objective-C和Swift版本任君选择。
将代码拖入项目后,Objective-C版你只需在需要使用的地方import头文件即可。对于有pch的项目直接在pch导入即可。
一个建议的方式是将原有的导入UIKit改成导入YJKit:
#import <UIKit/UIKit.h>#import "YJKit.h"
Swift版则更方便,无需import,直接就可以使用!
YJKProgressHUD,这是显示提示的,对MBProgressHUD做了一下封装。区分单行文字提示和多行文字提示。
YJKImageActionSheet,一行代码就可以弹出拍照和从相册选取图片的选项。
YJKPacketConnection,这是数据连接的封装。基本版的代码里示范了一个网络请求,还可以按需再增加数据库和内存的请求,灵活调用。
NSDictionary的类别,增加了能直接获取基本数据类型,而不需再转换object。
NSMutableDictionary的类别,增加了防止设置nil值而崩溃。
UIView的类别,增加了截图的方法。
NSString的类别
准确比较版本号大小
- (NSComparisonResult)compareVersion:(NSString *_Nonnull)string;
对字符串进行md5(其中十六进制小写)
- (nonnull NSString *)md5;
对字符串进行md5(其中十六进制大写)
- (nonnull NSString *)md5Uppercase;
是否邮箱
- (BOOL)evaluateEmail;
是否纯整数
- (BOOL)evaluateInteger;
是否手机号
- (BOOL)evaluateMobile;
是否纯英文
- (BOOL)evaluateEnglish;
计算Label的尺寸
- (CGSize)caculationSize:(UILabel *_Nonnull)label;
根据字体计算尺寸
- (CGSize)caculationSize:(CGFloat)width font:(UIFont *_Nonnull)font;
一个英文占半个字符
- (NSUInteger)unicodeLength;
清除两端空格
- (nonnull NSString *)trim;
清除左边空格
- (nonnull NSString *)trimLeft;
清除右边空格
- (nonnull NSString *)trimRight;
iOS中\r是换行的,而安卓不换行,这里是兼容转换
- (nonnull NSString *)replaceWrap;
UIColor的类别
根据整型的rgb值得出color
+ (UIColor *)colorWithRGB:(NSUInteger)rgb alpha:(CGFloat)alpha;
根据十六进制字符串得出color(开头可以包含#号)
+ (UIColor *)colorWithHex:(NSString *)hex alpha:(CGFloat)alpha;
倒推得出rgb值
- (NSUInteger)argb;
UIImage的类别
根据文件名读取gif
+ (UIImage *)gifNamed:(NSString *)name;
根据data读取gif
+ (UIImage *)gifWithData:(NSData *)data;
一种特别的在Retina屏幕画一像素线的方法
+ (UIImage *)imageWithLine:(UIViewContentMode)mode color:(UIColor *)color;