美文网首页
YSBaseKit的使用

YSBaseKit的使用

作者: solayu | 来源:发表于2019-12-25 17:14 被阅读0次

    1.导入:

    使用CocoaPods导入YSBaseKit
    pod 'YSBaseKit''
    导入YSBaseKit头文件
    #import <YSBaseKit/YSBaseKit.h>
    
    //-----------------示例-----------------
    //设置view高度
    [view setHeight:100];
    //设置view的背景颜色
    [view setBackgroundColor:RGB(100,100,100)];
    //获取view所在viewController
    UIViewController *viewController = view.viewController;
    //给模型类归档
    YSArchive(modle,fileName);
    //获取计算label的文字高度
    label.textHeight;
    //string的base64编码
    string.base64Encoding
    //...... 更多如下说明
    

    2.便捷宏定义

    // 颜色RBG
    #define RGB(r, g, b) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1]
    //颜色RBGA
    #define RGBA(r, g, b, a) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:a]
    
    //便捷创建字体字体
    #define YSSystemFont(size) [UIFont systemFontOfSize:size]
    //便捷创建系统粗字体
    #define YSBoldSystemFont(size) [UIFont boldSystemFontOfSize:size]
    
    //3.5寸屏
    #define is3_5inch ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : NO)
    //3.5寸retina屏
    #define is4inch_retina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
    //4.7寸retina屏
    #define is4_7inch_retina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(750, 1334), [[UIScreen mainScreen] currentMode].size) : NO)
    //5.寸retina屏
    #define is5_5inch_retina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2208), [[UIScreen mainScreen] currentMode].size) : NO)
    
    //app框架高度
    #define APP_FRAME_HEIGHT [[UIScreen mainScreen] applicationFrame].size.height
    //app框架宽度
    #define APP_FRAME_WIDTH [[UIScreen mainScreen] applicationFrame].size.width
    //屏幕的尺寸
    #define SCREEN_SIZE ([[UIScreen mainScreen] bounds]).size
    //屏幕高度
    #define SCREEN_HEIGHT ([[UIScreen mainScreen] bounds]).size.height
    //屏幕宽度
    #define SCREEN_WIDTH ([[UIScreen mainScreen] bounds]).size.width
    
    //沙盒目录
    #define DOCUMENT_PATH [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]
    //应用keyWindow
    #define KEY_WINDOW [UIApplication sharedApplication].keyWindow
    
    // 调试
    #ifdef DEBUG
        #define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
    #else
        #define DLog(...)
    #endif
    
    //文件根目录归档
    #define YSArchive(object,name) [YSUtils ys_archiveWithObject:object fileName:name]
    //文件根目录解档
    #define YSUnArchive(name) [YSUtils ys_unArchiveWithFileName:name]
    //删除根目录下的文件
    #define YSDeleteArchiveFile(name) [YSUtils ys_deleteArchiveWithFileName:name]
    
    
    //便捷创建UIImage
    #define YSNameImage(name) [UIImage imageNamed:name]
    

    3.Category篇

    3.1 UIView

    /**
     *  通过响应者链找到view的viewController
     *
     *  @return <#return value description#>
     */
    -(UIViewController *)viewController;
    
    /**
     view截图
     
     @return <#return value description#>
     */
    - (UIImage *)convertToScreenScaleImage;
    
    /**
     view截图
     
     @return <#return value description#>
     */
    - (UIImage *)convertToImageWithScale:(CGFloat)scale;
    /**
     设置边框
    
     @param width 宽度
     @param color 颜色
     */
    - (void)setBorderWidth:(CGFloat)width color:(UIColor *)color;
    
    /**
     设置圆角
    
     @param cornerRadius 度数
     */
    - (void)setCornerRadius:(CGFloat)cornerRadius;
    
    /**
     视图坐标
     */
    @property CGPoint origin;
    
    /**
     视图大小
     */
    @property CGSize size;
    
    /**
     y坐标
     */
    @property (nonatomic) CGFloat left;
    
    /**
     x坐标
     */
    @property (nonatomic) CGFloat top;
    
    
    /**
     宽度
     */
    @property CGFloat width;
    
    /**
     高度
     */
    @property CGFloat height;
    
    /**
     右边x坐标
     */
    @property CGFloat right;
    
    /**
     底部y坐标
     */
    @property CGFloat bottom;
    
    /**
     中心x坐标
     */
    @property (nonatomic) CGFloat centerX;
    
    /**
     中心y坐标
     */
    @property (nonatomic) CGFloat centerY;
    

    3.2 UILabel

    /**
     固定宽度计算文字高度
     
     @return <#return value description#>
     */
    -(CGFloat)textHeight;
    
    /**
     固定高度计算文字宽度
     
     @return <#return value description#>
     */
    -(CGFloat)textWidth;
    

    3.3 UIButton

    /**
     设置Normal下的背景图片
     @param image 图片
     */
    -(void)setNormalBackgroundImage:(UIImage*)image;
    
    /**
     设置hlighted]下的背景图片
     @param image 图片
     */
    -(void)setHighlightedBackgroundImage:(UIImage*)image;
    
    /**
     设置Selected下的背景图片
     @param image 图片
     */
    -(void)setSelectedBackgroundImage:(UIImage*)image;
    
    /**
     设置Normal下的背景图片
     @param name 图片名
     */
    -(void)setNormalBackgroundImageName:(NSString*)name;
    
    /**
     设置Highlighted下的背景图片
     @param name 图片名
     */
    -(void)setHighlightedBackgroundImageName:(NSString*)name;
    
    /**
     设置Selected下的背景图片
     @param name 图片名
     */
    -(void)setSelectedBackgroundImageName:(NSString*)name;
    
    /**
     设置Normal下的Title
     
     @param title <#title description#>
     */
    -(void)setNormalTitle:(NSString*)title;
    
    /**
     设置Highlighted下的Title
     
     @param title <#title description#>
     */
    -(void)setHighlightedTitle:(NSString*)title;
    
    /**
     设置Selected下的Title
     
     @param title <#title description#>
     */
    -(void)setSelectedTitle:(NSString*)title;
    
    /**
     设置Normal下的Title Color
     
     @param color <#color description#>
     */
    -(void)setNormalTitleColor:(UIColor *)color;
    
    /**
     设置Highlighted下的Title Color
     
     @param color <#color description#>
     */
    -(void)setHighlightedTitleColor:(UIColor *)color;
    
    /**
     创建便捷的通用点击事件
     
     @param controlEvent button事件
     @param handler 回调block
     */
    -(void)handlerControlEvent:(UIControlEvents)controlEvent handler:(void (^)(id sender))handler;
    
    /**
     创建最常用的TouchUpInside点击
     
     @param handler 回调block
     */
    -(void)handlerTouchUpInsideEvent:(void (^)(id sender))handler;
    
    /**
     移除target
     
     @param event <#event description#>
     */
    -(void)removeTargetWithEvent:(UIControlEvents)event;
    

    3.4 UIImage

    /**
     *  传入图片放缓一个像素大小的UIImage图片
     *
     *  @param color <#color description#>
     *
     *  @return <#return value description#>
     */
    +(UIImage*)imageWithColor:(UIColor*)color;
    
    /**
     压缩图片至目标尺寸
     
     @param sourceImage sourceImage 源图片
     @param targetWidt 图片最终尺寸的宽
     @return 返回按照源图片的宽、高比例压缩至目标宽、高的图片
     */
    +(UIImage *)compressImage:(UIImage *)sourceImage toTargetWidth:(CGFloat)targetWidt;
    
    /**
     生成高斯模糊UIImage
     
     @param image 原始图片
     @param blur 0.0~1.0f强度
     @return <#return value description#>
     */
    +(UIImage *)blurImage:(UIImage *)image withBlur:(CGFloat)blur;
    

    3.5 NSString

    /**
     *  判断身份证号码是否正确
     *
     *  @return <#return value description#>
     */
    -(BOOL)validateIDCardNumber;
    /**
     *  判断是否为手机号码
     *
     *  @return <#return value description#>
     */
    -(BOOL)validatePhoneNumber;
    /**
     *  简单的11位手机号码校验
     *
     *  @return <#return value description#>
     */
    -(BOOL)simpleValidatePhone;
    /**
     *  判断是否为身份证
     *
     *  @return <#return value description#>
     */
    -(BOOL) validateIdentityCard;
    /**
     *  判断是否为车牌号
     *
     *  @return <#return value description#>
     */
    -(BOOL) validateCarNo;
    /**
     *  判断是否为邮箱
     *
     *  @return <#return value description#>
     */
    -(BOOL) validateEmail;
    /**
     *  字符串去首位空格
     *
     *  @return <#return value description#>
     */
    -(NSString*)trim;
    /**
     *  SHA1加密
     *
     *  @return <#return value description#>
     */
    -(NSString*)sha1;
    
    /**
     *  url编码
     *
     *  @return <#return value description#>
     */
    -(NSString*)urlEncode;
    /**
     *  url解码
     *
     *  @return <#return value description#>
     */
    -(NSString*)urlDecode;
    /**
     *  md5
     *
     *  @return <#return value description#>
     */
    -(NSString*)md5;
    
    
    /**
     DES+Base64加密
    
     @param key <#key description#>
     @return <#return value description#>
     */
    - (NSString *)desEncryptWithKey:(NSString*)key;
    
    /**
     DES+Base64解密
    
     @param key <#key description#>
     @return <#return value description#>
     */
    - (NSString *)desDecryptWithKey:(NSString*)key;
    
    /**
     AES加密
    
     @param key <#key description#>
     @return <#return value description#>
     */
    - (NSString *)aesEncryptWitKey:(NSString*)key;
    
    /**
     AES解密
    
     @param key <#key description#>
     @return <#return value description#>
     */
    - (NSString *)aesDecryptWitKey:(NSString*)key;
    
    /**
     *  base64编码
     *
     *  @return <#return value description#>
     */
    -(NSString*)base64Encoding;
    /**
     *  base64解码
     *
     *  @return <#return value description#>
     */
    -(NSString*)base64Decodeing;
    

    3.6 NSData

    /**
     *  aes265加密
     *
     *  @param key <#key description#>
     *
     *  @return <#return value description#>
     */
    - (NSData *)aes256_encrypt:(NSString *)key;
    
    /**
     *  aes265 解密
     *
     *  @param key <#key description#>
     *
     *  @return <#return value description#>
     */
    - (NSData *)aes256_decrypt:(NSString *)key;
    
    /**
     *  des加密
     *
     *  @param key <#key description#>
     *
     *  @return <#return value description#>
     */
    -(NSData*)desEncryptWithKey:(NSString*)key;
    
    /**
     *  des解密
     *
     *  @param key <#key description#>
     *
     *  @return <#return value description#>
     */
    -(NSData*)desDecrypttWithKey:(NSString*)key;
    
    /**
     *  转16进制字符串
     *
     *  @return <#return value description#>
     */
    - (NSString*)encryptHex;
    

    3.7 NSObject

    /**
     runtime 扩展属性
     */
    @property (nonatomic,strong) NSMutableDictionary *extentObject;
    

    4 Extension

    4.1 UIColor

    /**
     *  16进制颜色转RGB
     *
     *  @param hexValue   色值
     *  @param alphaValue 透明度
     *
     *  @return <#return value description#>
     */
    + (UIColor*) colorWithHex:(NSInteger)hexValue alpha:(CGFloat)alphaValue;
    
    /**
     *   16进制颜色转RGB
     *
     *  @param hexValue 色值
     *
     *  @return <#return value description#>
     */
    + (UIColor*) colorWithHex:(NSInteger)hexValue;
    
    /**
     *  RGB转16进制颜色
     *
     *  @param color RGB颜色
     *
     *  @return 16进制颜色字符串
     */
    + (NSString *) hexFromUIColor: (UIColor*) color;
    

    5 Utils

    5.1 钥匙串(KeyChain)

    #import "YSKeyChain.h"
    
    /**
     <#Description#>
    
     @param key 保存东西到钥匙串
     @param data <#data description#>
     */
    + (void)saveWithKey:(NSString *)key data:(id)data;
    
    
    /**
     加载钥匙串里的内容
    
     @param key <#key description#>
     @return <#return value description#>
     */
    + (id)loadWithKey:(NSString *)key;
    
    
    /**
      删除钥匙串内容
    
     @param key <#key description#>
     */
    + (void)deleteWithKey:(NSString *)key;
    

    5.2 RSA加密解密

    #import "YSRSA.h"
    
    // return base64 encoded string
    + (NSString *)encryptString:(NSString *)str publicKey:(NSString *)pubKey;
    // return raw data
    + (NSData *)encryptData:(NSData *)data publicKey:(NSString *)pubKey;
    // return base64 encoded string
    // enc with private key NOT working YET!
    //+ (NSString *)encryptString:(NSString *)str privateKey:(NSString *)privKey;
    // return raw data
    //+ (NSData *)encryptData:(NSData *)data privateKey:(NSString *)privKey;
    
    // decrypt base64 encoded string, convert result to string(not base64 encoded)
    
    /**
     *  公钥解密 String
     *
     *  @param str    待解密字符串
     *  @param pubKey 公钥
     *
     *  @return <#return value description#>
     */
    + (NSString *)decryptString:(NSString *)str publicKey:(NSString *)pubKey;
    /**
     *  公钥解密NSData
     *
     *  @param data   待解密Data
     *  @param pubKey 公钥
     *
     *  @return <#return value description#>
     */
    + (NSData *)decryptData:(NSData *)data publicKey:(NSString *)pubKey;
    /**
     *  私钥解密 String
     *
     *  @param str     待解密字符串
     *  @param privKey 私钥
     *
     *  @return <#return value description#>
     */
    + (NSString *)decryptString:(NSString *)str privateKey:(NSString *)privKey;
    
    /**
     私钥解密 NSData
    
     @param data 待解密Data
     @param privKey 私钥
     @return <#return value description#>
     */
    + (NSData *)decryptData:(NSData *)data privateKey:(NSString *)privKey;
    

    5.3 通用工具类

    #import "YSUtils.h"
    /**
     计算文字宽度
     
     @param text <#text description#>
     @param font <#font description#>
     @param height <#height description#>
     @return <#return value description#>
     */
    +(CGFloat)textWidth:(NSString*)text font:(UIFont*)font height:(CGFloat)height;
    
    /**
     计算文字高度
     
     @param text <#text description#>
     @param font <#font description#>
     @param width <#width description#>
     @return <#return value description#>
     */
    +(CGFloat)textHeight:(NSString*)text font:(UIFont*)font width:(CGFloat)width;
    
    
    /**
     归档
     
     @param object <#object description#>
     @param name <#fileName description#>
     @return <#return value description#>
     */
    +(BOOL)ys_archiveWithObject:(id)object fileName:(NSString*)name;
    
    /**
     解档
     
     @param name <#name description#>
     @return <#return value description#>
     */
    +(id)ys_unArchiveWithFileName:(NSString*)name;
    
    /**
     删除归档文件
     
     @param name <#name description#>
     @return <#return value description#>
     */
    +(BOOL)ys_deleteArchiveWithFileName:(NSString*)name;
    

    相关文章

      网友评论

          本文标题:YSBaseKit的使用

          本文链接:https://www.haomeiwen.com/subject/tlococtx.html