超实用Myhelper,可作为初学者补充使用(封装)
来源:互联网 发布:人工智能计算机视觉 编辑:程序博客网 时间:2024/04/30 02:09
超实用Myhelper,可作为初学者补充使用,集合了创建大部分UI控件方法,走过路过不要错过!时间戳转换,获取本地时间,本地版本等等
+ (UIButton *)createButton_WithTitle:(NSString *)title frame:(CGRect)frame target:(id)target selector:(SEL)selector { UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; button.frame = frame; button.layer.cornerRadius = 3.f; button.layer.masksToBounds = YES; button.backgroundColor = [UIColor colorWithRed:0.3 green:0.8f blue:1.f alpha:1.f]; [button setTitle:title forState:UIControlStateNormal]; [button addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside]; return button;}+ (UIButton *)creatButton_WithFrame:(CGRect)frame target:(id)target sel:(SEL)sel tag:(NSInteger)tag image:(NSString *)name title:(NSString *)title{ UIButton *button = nil; if (name) { //创建图片按钮 //创建背景图片 按钮 button = [UIButton buttonWithType:UIButtonTypeCustom]; [button setBackgroundImage:[UIImage imageNamed:name] forState:UIControlStateNormal]; if (title) {//图片标题按钮 [button setTitle:title forState:UIControlStateNormal]; [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; } }else if (title) { //创建标题按钮 button = [UIButton buttonWithType:UIButtonTypeSystem]; [button setTitle:title forState:UIControlStateNormal]; } button.frame = frame; button.tag = tag; [button addTarget:target action:sel forControlEvents:UIControlEventTouchUpInside]; return button;}+ (UILabel *)createLabel_WithTitle:(NSString *)title frame:(CGRect)frame { return [self createLabel_WithTitle:title frame:frame fontSize:14.f];} + (UILabel *)createLabel_WithTitle:(NSString *)title frame:(CGRect)frame textColor:(UIColor *)color { return [self createLabel_WithTitle:title frame:frame textColor:color fontSize:14.f];} + (UILabel *)createLabel_WithTitle:(NSString *)title frame:(CGRect)frame fontSize:(CGFloat)size { return [self createLabel_WithTitle:title frame:frame textColor:[UIColor blackColor] fontSize:size];} + (UILabel *)createLabel_WithTitle:(NSString *)title frame:(CGRect)frame textColor:(UIColor *)color fontSize:(CGFloat)size { UILabel *label = [[UILabel alloc] initWithFrame:frame]; label.text = title; label.textColor = color; label.font = [UIFont systemFontOfSize:size]; //return [label autorelease]; return label;} + (UIView *)createView_WithBackgroundColor:(UIColor *)color frame:(CGRect)frame { UIView *view = [[UIView alloc] initWithFrame:frame]; view.backgroundColor = color; //return [view autorelease]; return view;} + (UITextField *)createTextField_WithText:(NSString *)text frame:(CGRect)frame placeholder:(NSString *)placeholder textColor:(UIColor *)color borderStyle:(UITextBorderStyle)borderStyle { UITextField *textField = [[UITextField alloc] initWithFrame:frame]; textField.placeholder = placeholder; textField.borderStyle = borderStyle; textField.text = text; textField.textColor = color; //return [textField autorelease]; return textField;}+ (NSString *)dateStringFromNumberTimer:(NSString *)timerStr { //转化为Double double t = [timerStr doubleValue]; //计算出距离1970的NSDate NSDate *date = [NSDate dateWithTimeIntervalSince1970:t]; //转化为 时间格式化字符串 NSDateFormatter *df = [[NSDateFormatter alloc] init] ; df.dateFormat = @"yyyy-MM-dd HH:mm:ss"; //转化为 时间字符串 return [df stringFromDate:date];}+(NSTimeInterval)timeIntervalFormWithDate:(NSDate*)date{ NSTimeInterval time=0; if (!date) { NSDate *today = [NSDate date]; time=[today timeIntervalSince1970]; }else{ time=[date timeIntervalSince1970]; } return time;} //动态 计算行高//根据字符串的实际内容的多少 在固定的宽度和字体的大小,动态的计算出实际的高度+ (CGFloat)textHeightFromTextString:(NSString *)text width:(CGFloat)textWidth fontSize:(CGFloat)size{ if ([Factory getCurrentIOS] >= 7.0) { //iOS7之后 /* 第一个参数: 预设空间 宽度固定 高度预设 一个最大值 第二个参数: 行间距 如果超出范围是否截断 第三个参数: 属性字典 可以设置字体大小 */ NSDictionary *dict = @{NSFontAttributeName:[UIFont systemFontOfSize:size]}; CGRect rect = [text boundingRectWithSize:CGSizeMake(textWidth, MAXFLOAT) options:NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin attributes:dict context:nil]; //返回计算出的行高 return rect.size.height; }else { //iOS7之前 /* 1.第一个参数 设置的字体固定大小 2.预设 宽度和高度 宽度是固定的 高度一般写成最大值 3.换行模式 字符换行 */ CGSize textSize = [text sizeWithFont:[UIFont systemFontOfSize:size] constrainedToSize:CGSizeMake(textWidth, MAXFLOAT) lineBreakMode:NSLineBreakByCharWrapping]; return textSize.height;//返回 计算出得行高 }} //获取iOS版本号+ (double)getCurrentIOS { return [[[UIDevice currentDevice] systemVersion] doubleValue];}+ (CGSize)getScreenSize { return [[UIScreen mainScreen] bounds].size;}//获得当前系统时间到指定时间的时间差字符串,传入目标时间字符串和格式+(NSString*)stringNowToDate:(NSString*)toDate formater:(NSString*)formatStr{ NSDateFormatter *formater=[[NSDateFormatter alloc] init]; if (formatStr) { [formater setDateFormat:formatStr]; } else{ [formater setDateFormat:[NSString stringWithFormat:@"yyyy-MM-dd HH:mm:ss"]]; } NSDate *date=[formater dateFromString:toDate]; return [self stringNowToDate:date]; } //获得到指定时间的时间差字符串,格式在此方法内返回前自己根据需要格式化+(NSString*)stringNowToDate:(NSDate*)toDate{ //创建日期 NSCalendar对象 NSCalendar *cal = [NSCalendar currentCalendar]; //得到当前时间 NSDate *today = [NSDate date]; //用来得到具体的时差,位运算 unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit ; if (toDate && today) {//不为nil进行转化 NSDateComponents *d = [cal components:unitFlags fromDate:today toDate:toDate options:0 ]; //NSString *dateStr=[NSString stringWithFormat:@"%d年%d月%d日%d时%d分%d秒",[d year],[d month], [d day], [d hour], [d minute], [d second]]; NSString *dateStr=[NSString stringWithFormat:@"ld:ld:ld",[d hour], [d minute], [d second]]; return dateStr; } return @"";} //获取 一个文件 在沙盒Library/Caches/ 目录下的路径+ (NSString *)getFullPathWithFile:(NSString *)urlName { //先获取 沙盒中的Library/Caches/路径 NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]; NSString *myCacheDirectory = [docPath stringByAppendingPathComponent:@"MyCaches"]; //检测MyCaches 文件夹是否存在 if (![[NSFileManager defaultManager] fileExistsAtPath:myCacheDirectory]) { //不存在 那么创建 [[NSFileManager defaultManager] createDirectoryAtPath:myCacheDirectory withIntermediateDirectories:YES attributes:nil error:nil]; } //用md5进行 加密 转化为 一串十六进制数字 (md5加密可以把一个字符串转化为一串唯一的用十六进制表示的串) NSString * newName = [urlName MD5Hash]; //拼接路径 return [myCacheDirectory stringByAppendingPathComponent:newName];}//检测 缓存文件 是否超时+ (BOOL)isTimeOutWithFile:(NSString *)filePath timeOut:(double)timeOut { //获取文件的属性 NSDictionary *fileDict = [[NSFileManager defaultManager] attributesOfItemAtPath:filePath error:nil]; //获取文件的上次的修改时间 NSDate *lastModfyDate = fileDict.fileModificationDate; //算出时间差 获取当前系统时间 和 lastModfyDate时间差 NSTimeInterval sub = [[NSDate date] timeIntervalSinceDate:lastModfyDate]; if (sub < 0) { sub = -sub; } //比较是否超时 if (sub > timeOut) { //如果时间差 大于 设置的超时时间 那么就表示超时 return YES; } return NO;}//将汉字转换成UTF-8码+(NSString*)stringFromUTFStringWithText:(NSString*)text{ return [text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];}//将UTF-8码转换成oc字符串+(NSString*)utfStringFromObjectStringWithText:(NSString*)text{ return [text stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];}
头文件
//创建Button的工厂,将特殊的元素传入,生产相对应的Button+ (UIButton *)createButton_WithTitle:(NSString *)title frame:(CGRect)frame target:(id)target selector:(SEL)selector;//创建button可以创建 标题按钮和 图片按钮+ (UIButton *)creatButton_WithFrame:(CGRect)frame target:(id)target sel:(SEL)sel tag:(NSInteger)tag image:(NSString *)name title:(NSString *)title;//创建Label的工厂,将特殊的元素传入,生产相对应的Label+ (UILabel *)createLabel_WithTitle:(NSString *)title frame:(CGRect)frame;+ (UILabel *)createLabel_WithTitle:(NSString *)title frame:(CGRect)frame textColor:(UIColor *)color;+ (UILabel *)createLabel_WithTitle:(NSString *)title frame:(CGRect)frame fontSize:(CGFloat)size;+ (UILabel *)createLabel_WithTitle:(NSString *)title frame:(CGRect)frame textColor:(UIColor *)color fontSize:(CGFloat)size; //创建View的工厂,将特殊的元素传入,生产相应的View+ (UIView *)createView_WithBackgroundColor:(UIColor *)color frame:(CGRect)frame; //创建textField的工厂,将特殊的元素传入,生产响应的textField+ (UITextField *)createTextField_WithText:(NSString *)text frame:(CGRect)frame placeholder:(NSString *)placeholder textColor:(UIColor *)color borderStyle:(UITextBorderStyle)borderStyle; //把一个秒字符串 转化为真正的本地时间//@"1419055200" -> 转化 日期字符串+ (NSString *)dateStringFromNumberTimer:(NSString *)timerStr;//将系统时间或者是某一个时间转换成秒字符串// 转化 日期字符串 ->@"1419055200"+(NSTimeInterval)timeIntervalFormWithDate:(NSDate*)date;//根据字符串内容的多少 在固定宽度 下计算出实际的行高+ (CGFloat)textHeightFromTextString:(NSString *)text width:(CGFloat)textWidth fontSize:(CGFloat)size; //获取 当前设备版本+ (double)getCurrentIOS;//获取当前设备屏幕的大小+ (CGSize)getScreenSize; //获得当前系统时间到指定时间的时间差字符串,传入目标时间字符串和格式+(NSString*)stringNowToDate:(NSString*)toDate formater:(NSString*)formatStr; //获取 一个文件 在沙盒沙盒Library/Caches/ 目录下的路径+ (NSString *)getFullPathWithFile:(NSString *)urlName;//检测 缓存文件 是否超时+ (BOOL)isTimeOutWithFile:(NSString *)filePath timeOut:(double)timeOut;//将汉字转换成UTF-8码+(NSString*)stringFromUTFStringWithText:(NSString*)text;//将UTF-8码转换成oc字符串+(NSString*)utfStringFromObjectStringWithText:(NSString*)text;
0 0
- 超实用Myhelper,可作为初学者补充使用(封装)
- Android Volley 超实用简易封装
- 电脑可安装的超炫实用软件
- 一个php操作数据库的封装类,超实用.
- apk反编译工具的使用,超实用
- js生成GUID,可作为token使用
- MFC 控件随窗口大小变化,超详细,初学者可看。
- 最简单的可作为窗体又可作为控件使用的COM终于实现了
- Jquery实用小案例,适合初学者练习使用
- 48个实用的HTML特效代码<推荐初学者使用>
- 作为一个java初学者
- 下拉水平菜单 js div+css 超实用 可链接数据库
- 下拉水平菜单 js div+css 超实用 可链接数据库
- js-超实用的源生封装cookie方法加批量删除cookie
- Git实用命令补充
- 【超实用】图解--如何使用本地的dtd文件映射
- MDK中如何使用gnu语法--简直超实用
- Android Studio超实用插件--ADB WIFI 使用的介绍
- 人在HP
- JavaScript 的 BOM
- Hibernate 入门教程(纯Eclipse版)
- 设置按钮高亮情况下的背景色
- Android github上的安卓开源库汇总
- 超实用Myhelper,可作为初学者补充使用(封装)
- C语言关键字、标识符和注释
- Android Studio中通过快捷键来提取提取方法
- 802.11n 速率计算方法
- php if中存在赋值可能会存在的问题
- 【软件后门】资源(dll、ocx、exe)语言切换(汉化)、图标更改
- mysql使用手册
- 游戏引擎架构 && windows 核心编程
- 哈希表