自写常用扩展类

好久没有写博客了,今天闲着没事就把前一段时间写的几个扩展类发一下。主要写了三个扩展类。

一、UIColor+WCYAdd

这个类主要是为系统的UIColor添加一些自定方法。在这里我添加了一个生成随机颜色和根据十六进制生成颜色两个方法。

/**
 生成随机颜色,并返回

 @return 随机颜色
 */
+ (UIColor *)randomColor;

/**
 根据16进制取颜色
 支持@“#123456”、 @“0X123456”、 @“123456”三种格式

 @param color 16进制数
 @return 颜色
 */
+ (UIColor *)colorWithHexString:(NSString *)color;

调用方法很简单,就像系统方法一样。

    self.view.backgroundColor = [UIColor randomColor];

    self.view.backgroundColor = [UIColor colorWithHexString:@"0x123456"];

二、UIImage+WCYAdd

这个类主要添加了根据颜色生成图片和生成渐变颜色图片的方法。

/**
 根据颜色生成图片

 @param color 图片颜色
 @return 图片
 */
+ (UIImage *)getImageWithColor:(UIColor *)color;

/**
 颜色渐变

 @param rect 尺寸
 @param startColor 开始颜色
 @param endColor 结束颜色
 @return 渐变图片
 */
+ (UIImage *)colorgradientWithRect:(CGRect)rect startColor:(UIColor *)startColor endColor:(UIColor *)endColor;

调用方法同上,直接调用即可。

三、UIView+Touch

这个类是为UIview类添加点击事件做的。需要和NSObject+Addtion相配合。

// 前提需要打开交互 self.textLabel.userInteractionEnabled = YES;
     [self.textLabel setTouchAction:^(UIView *view) {
     NSLog(@"label 点击");
     }];

四、NSDate+WCYTimaAdd

这个类是为NSDate类添加的一些方法。可以直接获取时分秒、字符串和时间戳的转化、判断两日期是否相同、两时间的前后和类似微信根据时间返回刚刚几分钟前这样的文字。

// 字符串和date的互相转化
// 使用这两个方法要注意时间格式
+ (NSDate *)stringToDate:(NSString *)string;
+ (NSString *)dateToString:(NSDate *)date;

// 返回时分秒
- (NSUInteger)hour;
- (NSUInteger)minite;
- (NSTimeInterval)second;

// 判断两日期是否相同
- (BOOL)isSameDateWithData:(NSDate *)date;

// 判断时间前后
+ (NSString *)compareOneDay:(NSDate *)oneDay withAnotherDay:(NSDate *)anotherDay;

/*
 < 60s 刚刚
 < 60Min n分钟前
 < 24h n小时前
 < 1W n天前
 > 1W yy-MM-dd hh:mm
 */
- (NSString *)easyReadPastTimeString;

使用方法:

NSDate *currentData = [NSDate date];
    NSLog(@"%f",currentData.second);

    NSString * str1 = @"2018-05-19 11:08:05";
    NSString * str2 = @"2018-03-28 08:44:05";

    NSLog(@"%@   \n%@",[NSDate stringToDate:str1],[NSDate stringToDate:str2]);

    NSLog(@"%@",[NSDate compareOneDay:[NSDate stringToDate:str1] withAnotherDay:[NSDate stringToDate:str2]]);

    NSLog(@"%@",[[NSDate stringToDate:str1] easyReadPastTimeString]);

    NSLog(@"%d",[currentData isSameDateWithData:[NSDate dateWithTimeIntervalSinceNow:100000000]]);
    NSLog(@"%@",[NSDate dateToString:currentData]);

附件如下:WCYCategory.zip

原文地址:https://www.cnblogs.com/weicyNo-1/p/9059719.html

时间: 2024-10-14 09:43:42

自写常用扩展类的相关文章

UI(UGUI)框架(二)-------------UIManager单例模式与开发BasePanel面板基类/UIManage统一管理UI面板的实例化/开发字典扩展类

UIManage单实例: 1 /// 单例模式的核心 2 /// 1,定义一个静态的对象 在外界访问 在内部构造 3 /// 2,构造方法私有化 4 5 private static UIManager _instance; 6 7 public static UIManager Instance 8 { 9 get 10 { 11 if (_instance == null) 12 { 13 _instance = new UIManager(); 14 } 15 return _instan

写shell工具类,一个常用实例

简述: 当我们常用到某些指令时,我们就需要将这个命令进行封装.封装的设计和扩展,因人而异.但为了每个人都能够了解到这个命令,常需要写出这个类的help. 关键字: 函数.getopts 函数 通过自定义函数(可参阅:http://www.runoob.com/linux/linux-shell-func.html),能够实现过程操作.输入捕获(read).输出获取(return). getopts 为了获取用户在命令下的参数,通过该命令来操作(可参阅:https://blog.csdn.net/

LINQ常用扩展方法

下面的方法都是IEnumerable<T>的扩展方法: Average计算平均值: Min最小元素:Max最大元素:Sum元素总和: Count元素数量: Concat连接两个序列://Unoin all Contains序列是否包含指定元素: Distinct取得序列中的非重复元素: Except获得两个序列的差集: Intersect获得两个序列的交集: First取得序列第一个元素: Single取得序列的唯一一个元素,如果元素个数不是1个,则报错:!!!严谨的程序. FirstOrDe

PHP扩展类ZipArchive实现压缩解压Zip文件和文件打包下载 &amp;&amp; Linux下的ZipArchive配置开启压缩

PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开启方法就不说了,不同的平台开启PHP扩增的方法网上都有,如有疑问欢迎交流.这里整理一下常用的示例供参考. 一.解压缩zip文件 ? 1 2 3 4 5 6 7 8 9 10 11 $zip = new ZipArchive;//新建一个ZipArchive的对象 /* 通过ZipArchive的对象处理zip文件 $zip->open这个方法的参数表示处理的

[C#] 常用工具类——文件操作类

/// <para> FilesUpload:工具方法:ASP.NET上传文件的方法</para> /// <para> FileExists:返回文件是否存在</para> /// <para> IsImgFilename:判断文件名是否为浏览器可以直接显示的图片文件名</para> /// <para> CopyFiles:复制指定目录的所有文件</para> /// <para> MoveFi

PHP扩展类ZipArchive实现压缩解压Zip文件和文件打包下载

PHP扩展类ZipArchive实现压缩解压Zip文件和文件打包下载 http://my.oschina.net/junn/blog/104464 PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开启方法就不说了,不同的平台开启PHP扩增的方法网上都有,如有疑问欢迎交流.这里整理一下常用的示例供参考. 一.解压缩zip文件 ? 1 2 3 4 5 6 7 8 9 10 11 $zip = new ZipAr

【转载】Android应用框架及常用工具类总结

转载自:Android应用框架 http://www.tuicool.com/articles/feqmQj 常用工具类总结    http://blog.csdn.net/krislight/article/details/11354119 一. UML类图复习: UML类图中有些标记很容易混淆,这里先复习下,请大家看下面这幅图: 注:这幅图来自<大话设计模式>这本书中的插图. 二.应用框架: A.基本概念 抽象(抽出共同之现象)——在同领域的程序中,常含有许多类别,这些类别有其共同点,我们

Markdown写出漂亮类图

我们经常使用到UML类图,常用工具软件不是那么的好用顺手.有没有想过Markdown简单标记语言也能写出漂亮类图?分享一个Jext开源插件扩展JIRA时画的类图. @startuml Title "到期工作日天数" 内置DueWorkdaysField ..> DueWorkdays 预定义DueWorkdaysField ..> DueWorkdays DueWorkdays ..> WorkdayHelper DueWorkdays ..> HistoryH

Dubbo源码解析之SPI(一):扩展类的加载过程

Dubbo是一款开源的.高性能且轻量级的Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用.智能容错和负载均衡,以及服务自动注册和发现. Dubbo最早是阿里公司内部的RPC框架,于 2011 年开源,之后迅速成为国内该类开源项目的佼佼者,2018年2月,通过投票正式成为 Apache基金会孵化项目.目前宜信公司内部也有不少项目在使用Dubbo. 本系列文章通过拆解Dubbo源码,帮助大家了解Dubbo,做到知其然,并且知其所以然. 一.JDK SPI 1.1 什么是SPI? S