XESCategoryPublic 0.0.2

XESCategoryPublic 0.0.2

TestsTested
LangLanguage Obj-CObjective C
License MIT
ReleasedLast Release Oct 2017

Maintained by gfy10010.



  • By
  • gfy

一、安装

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 示例代码