CocoaPods trunk is moving to be read-only. Read more on the blog, there are 14 months to go.
| TestsTested | ✗ | 
| LangLanguage | Obj-CObjective C | 
| License | MIT | 
| ReleasedLast Release | Oct 2017 | 
Maintained by gfy10010.
1.下载 XESCategory 文件夹内的所有内容。
2.将 XESCategory 内的源文件添加(拖放)到你的工程。
3.导入 XESCategoryHeader.h。
Category增加了部分常用的分类。
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 示例代码
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 示例代码
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 示例代码
当前layer截图。
3.4.1 提供的接口
/**
 layer截图 大小和layer一致
 @return UIImage对象
 */
- (nullable UIImage *)xes_snapshotImage;
3.4.2 示例代码
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 示例代码
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 示例代码
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 示例代码
UITextField选中所有文本和选中指定范围的文本。
3.8.1 提供的接口
/**
 选择所有文本
 */
- (void)sex_selectAllText;
/**
 在选定的范围内设置文本
 @param range 在文档中选择的文本的范围
 */
- (void)xes_setSelectedRange:(NSRange)range;
3.8.2 示例代码
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 示例代码