這是我寫的一個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;