1. 程式人生 > >自寫常用擴展類

自寫常用擴展類

eno 幾分鐘前 相同 EDA HA ext mco 三種 系統

好久沒有寫博客了,今天閑著沒事就把前一段時間寫的幾個擴展類發一下。主要寫了三個擴展類。

一、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

自寫常用擴展類