Latest 0.0.2
Homepage https://github.com/speiyouiOS/XESCategory
License MIT
Platforms ios 7.0, requires ARC
Frameworks Foundation
Authors

一、安装

1.1、Installation with CocoaPods(推荐)

1.在 Podfile 中添加 pod 'XESCategory'

2.执行 pod installpod update

3.导入 "XESCategory.h"

1.2、手动安装(不推荐)

1.下载 XESCategory 文件夹内的所有内容。

2.将 XESCategory 内的源文件添加(拖放)到你的工程。

3.导入 XESCategoryHeader.h。

二、Category介绍

2.1、简介

Category增加了部分常用的分类。

三、Category 提供了哪些服务

3.1、NSString扩展

  1、通过字符串来计算宽度和高度。

  2、判断字符串是否为空(nil、Nil、NULL、NSNull对象均视为空)。

  3、针对NSNumber类型转字符串。

  4、针对nil、Nil、NULL、NSNull对象转成空字符串。

   3.1.1 提供的接口

/**
 字符串根据字体和展示范围计算size
 @param font 字体
 @param size size
 @param lineBreakMode 折行方式
 @return size
 */
- (CGSize)xes_sizeForFont:(UIFont *)font size:(CGSize)size mode:(NSLineBreakMode)lineBreakMode;
/**
 字符串根据字体和宽度 计算高度
 适用于 多行文本显示计算
 @param font 字体
 @param width 宽度
 @return 高度值
 */
- (CGFloat)xes_heightForFont:(UIFont *)font width:(CGFloat)width;
/**
 字符串根据字体 计算宽度
适用于 单行文本显示计算
 @param font 字体
 @return 宽度
 */
- (CGFloat)xes_widthForFont:(UIFont *)font;

/**
 返回安全字符串
 针对NSNumber类型转字符串,针对nil、Nil、NULL、NSNull对象转成空字符串。
 @param string 字符串
 @return 安全字符串
 */
+ (NSString *)xes_safeString:(NSString*)string;

/**
 判断字符串是否为空
 @param string 字符串
 @return 字符串是否为空返回YES NO
 */
+ (BOOL)xes_isBlankString:(NSString *)string;

   3.1.2 示例代码

3.2、NSObject扩展

  1、注册观察者、移除观察者、发送通知、处理通知。

  2、磁盘空间的计算、文件夹占用空间计算。

   3.2.1 提供的接口


/**
 硬盘总大小

 @return 字节
 */
+ (NSString *)xes_hardDiskAllSize;

/**
 可用空间大小

 @return 字节
 */
+ (NSString *)xes_freeSpaceSzie;

/**
 硬盘空间是否可以存储

 @param size 字节格式
 @return 返回是否可以
 */
+ (BOOL)xes_isSaveHardDisk:(long long)size;

/**
 指定路径文件夹大小

 @param folderPath 文件夹路径
 @return 字节
 */
+(long long)xes_hardDiskSizeWithfolderPath:(NSString *)folderPath;

/**
 指定路径文件大小

 @param path 路径
 @return 字节
 */
+ (long long)xes_fileSizeAtPath:(NSString *)path;

   3.2.2 示例代码

3.3 、NSArray扩展

  1、NSArray类方法初始化传入object为nil的处理。

  2、NSArray取值越界的处理。

   3.3.1 提供的接口

  /**
 NSArray取值越界的处理

 @param index index
 @return value
 */
- (id)xes_safeObjectAtIndex:(NSUInteger)index;

/**
 NSArray类方法初始化传入object为nil的处理

 @param object object
 @return array
 */
+ (instancetype)xes_safeArrayWithObject:(id)object;

   3.3.2 示例代码

3.4、CALayer扩展

  当前layer截图。

   3.4.1 提供的接口


/**
 layer截图 大小和layer一致

 @return UIImage对象
 */
- (nullable UIImage *)xes_snapshotImage;

   3.4.2 示例代码

3.5、UIImage扩展

  1、根据颜色生成一个image对象。

  2、使用自定义绘制代码创建和返回图像。

  3、图像的缩放。

  4、图像的裁剪。

  5、图像设置圆角。

  6、图像的旋转。

   3.5.1 提供的接口


/**
 通过color生成一个UIImage对象

 @param color color
 @return UIImage对象
 */
+ (nullable UIImage *)xes_imageWithColor:(UIColor *_Nullable)color;

/**
 返回从该图像缩放的新图像。
 图像将根据需要拉伸。
 @param size  要缩放的新大小,值应该是正的。
 @return 给定尺寸的新图像
 */
- (nullable UIImage *)xes_imageByResizeToSize:(CGSize)size;

/**
 返回图片区域内设定裁剪区域的UIImage
 裁剪区域需要在图片内部
 @param rect 裁剪区域
 @return 裁剪的UIImage
 */
- (nullable UIImage *)xes_imageByCropToRect:(CGRect)rect;

/**
 返回一个圆角的UIImage
 传入的radius如果超过UIImage的宽度或者高度 两者最小值的一半的话  就会自动设置为宽度高度最小值的一半
 @param radius 圆角半径
 @return 返回一个设置圆角的UIImage
 */
- (nullable UIImage *)xes_imageByRoundCornerRadius:(CGFloat)radius;

/**
 逆时针旋转90度⤺
 宽高交换
 @return 返回一个逆时针旋转90度的UIImage
 */
- (nullable UIImage *)xes_imageByRotateLeft90;

/**
 顺时针旋转90度⤼
 宽高交换
 @return 返回一个顺时针旋转90度的UIImage
 */
- (nullable UIImage *)xes_imageByRotateRight90;

   3.5.2 示例代码

3.6、UIColor扩展

   1、通过16进制字符串颜色值生成一个UIColor对象。

   2、生成随机颜色。

   3、生成一个渐变颜色。

   3.6.1 提供的接口

/**
 通过hex string 创建一个color对象
 例子: @"0xF0F", @"66ccff", @"#66CCFF88"
 @param hexStr hex string
 @return color对象
 */
+ (UIColor *)xes_colorWithHexString:(NSString *)hexStr;

/**
 通过hex string 创建一个color对象
 例子: @"0xF0F", @"66ccff", @"#66CCFF88"
 @param hexStr hex string
 @param alpha 透明度
 @return color对象
 */
+ (UIColor *)xes_colorWithHexString:(NSString *)hexStr alpha:(CGFloat)alpha;;

/**
 *  @brief  随机颜色
 *
 *  @return UIColor
 */
+ (UIColor *)xes_randomColor;
/**
 *  @brief  渐变颜色
 *
 *  @param c1     开始颜色
 *  @param c2     结束颜色
 *  @param height 渐变高度
 *
 *  @return 渐变颜色
 */
+ (UIColor *)xes_gradientFromColor:(UIColor *)c1 toColor:(UIColor *)c2 withHeight:(int)height;

   3.6.2 示例代码

3.7、UIScrollView扩展

   1、UIScrollView滚动动画到底端、顶端、左端、右端。

   3.7.1 提供的接口

/**
 滚动内容到顶部的动画
 */
- (void)xes_scrollToTop;

/**
 滚动内容到底部的动画
 */
- (void)xes_scrollToBottom;

/**
 滚动内容向左动画.
 */
- (void)xes_scrollToLeft;

/**
 滚动内容到右边的动画.
 */
- (void)xes_scrollToRight;

/**
 Scroll content to top

 @param animated  Use animation.
 */
- (void)xes_scrollToTopAnimated:(BOOL)animated;

/**
 滚动内容到底部的动画.

 @param animated  Use animation.
 */
- (void)xes_scrollToBottomAnimated:(BOOL)animated;

/**
 滚动内容向左动画..

 @param animated  Use animation.
 */
- (void)xes_scrollToLeftAnimated:(BOOL)animated;

/**
 滚动内容到右边的动画.

 @param animated  Use animation.
 */
- (void)xes_scrollToRightAnimated:(BOOL)animated;

   3.7.2 示例代码

3.8、UITextField扩展

  UITextField选中所有文本和选中指定范围的文本。

   3.8.1 提供的接口

/**
 选择所有文本
 */
- (void)sex_selectAllText;

/**
 在选定的范围内设置文本

 @param range 在文档中选择的文本的范围
 */
- (void)xes_setSelectedRange:(NSRange)range;

   3.8.2 示例代码

3.9、UIView扩展

  1、生成一张view的截图。

  2、删除该View的所有子试图。

  3、设置圆角。

  4、获取一个view 所在的ViewController

   3.9.1 提供的接口


/**
 创建完整视图层次结构的快照映像

 @return Image
 */
- (UIImage *)xes_snapshotImage;

/**
 创建完整视图层次结构的快照映像 (速度比[self xes_snapshotImage]更快)

 @param afterUpdates 参数为YES,代表视图的属性改变渲染完毕后截屏,参数为NO代表立刻将当前状态的视图截图
 @return Image
 */
- (UIImage *)xes_snapshotImageAfterScreenUpdates:(BOOL)afterUpdates;

/**
 删除所有子视图view
 */
- (void)xes_removeAllSubviews;
/**
 设置圆角

 @param radius 圆角半径
 */
- (void)xes_setCornerRadius:(CGFloat)radius;

   3.9.2 示例代码

Latest podspec

{
    "name": "XESCategoryPublic",
    "version": "0.0.2",
    "summary": "XESCategoryPublic contains commonly used categories",
    "description": "XESCategory is a library that contains commonly used categories uff01",
    "homepage": "https://github.com/speiyouiOS/XESCategory",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "gfy": "[email protected]"
    },
    "platforms": {
        "ios": "7.0"
    },
    "source": {
        "git": "https://github.com/speiyouiOS/XESCategory.git",
        "tag": "0.0.2"
    },
    "source_files": "XESCategory/*.h",
    "public_header_files": "XESCategory/*.h",
    "vendored_libraries": "XESCategory/*.a",
    "frameworks": "Foundation",
    "requires_arc": true,
    "subspecs": [
        {
            "name": "Foundation",
            "source_files": "XESCategory/Foundation/**/*.h"
        },
        {
            "name": "UIKit",
            "source_files": "XESCategory/UIKit/*.h"
        },
        {
            "name": "Quartz",
            "source_files": "XESCategory/Quartz/*.h"
        }
    ]
}

Pin It on Pinterest

Share This