zoukankan      html  css  js  c++  java
  • IOS

    可能不定期添加新的东西
    github地址:https://github.com/yuqingzhude/CommonUseDemo
    
    /************************Tools************************/
    
    /** 存网络请求参数或者其他类似key value对应的字典*/
    @property (nonatomic,strong) NSDictionary *keyValueDic;
    
    + (instancetype)sharedCommonUse;
    
    /** 获取当前时间*/
    + (NSString *)getCurrentTime;
    
    /** 将日期格式转化成字符串*/
    +(NSString*)getFormatedTime:(NSDate*)date;
    
    /** 改变图片大小*/
    +(UIImage *)reSizeImage:(UIImage *)image toSize:(CGSize)reSize;
    
    /** 拨打电话*/
    + (void)callSomebody:(NSString *)tel;
    
    /** 字符串是否为数字*/
    + (BOOL)ifThisStringIsAnNumber:(NSString *)str;
    
    /** 字符串是否为整形*/
    + (BOOL)isPureInt:(NSString*)string;
    
    /** 判断是否为浮点形*/
    + (BOOL)isPureFloat:(NSString*)string;
    
    /** 从栈中将要移动vc向前移动index个位置,中间的vc将被释放*/
    //ex:pay success pop start vc
    + (void)moveForwardTopVC:(UIViewController *)vc ForwardIndex:(NSInteger)index;
    
    /** pop到指定名字的VC,没有index可能变化的引起的问题*/
    + (void)popToViewControllerWithVC:(UIViewController *)vc toClass:(Class)toClass animated:(BOOL)animated;
    
    /** 传入数据字典&Model名打印出Model Body*/
    +(void)createModelWithDictionary:(NSDictionary *)dict modelName:(NSString *)modelName;
    
    /** 计算字符串高度*/
    - (float) calculateStrheightWithStr:(NSString *)str Font: (UIFont *)font Width: (float) width;
    
    /** 计算字符串宽度*/
    - (float) calculateStrwidthWithStr:(NSString *)str Font: (UIFont *) font;
    
    /** 将一个UIView切成圆形 宽高得相等*/
    + (void)changeViewToCircle:(UIView *)view;
    
    /** collectionView 重新加载数据后计算出高度并更新*/
    + (void)reloadCollectionViewHeight:(UICollectionView *)collectionView;
    
    // Factory
    
    /** 创建btn 基本属性: frame title titleColor backgroundColor*/
    + (UIButton *)createButtonWithFrame:(CGRect)frame Title:(NSString *)title TitleColor:(UIColor *)titleColor BackgroundColor:(UIColor *)backgroundColor;
    
    /** 创建btn 基本属性 + 边框 + 圆角 + 背景图*/
    + (UIButton *)createButtonWithFrame:(CGRect)frame Title:(NSString *)title TitleColor:(UIColor *)titleColor BackgroundColor:(UIColor *)backgroundColor CornerRadius:(CGFloat)cornerRadius BorderWidth:(CGFloat)borderWidth BorderColor:(UIColor *)borderColor ImageName:(NSString *)imageName;
    
    /** 创建label 基本属性 frame text font textColor*/
    + (UILabel *)createLabelWithFrame:(CGRect)frame Text:(NSString *)text Font:(UIFont *) font TextColor:(UIColor *)textColor;
    
    /** 创建label 基本属性 + backgroundColor + textAlinment */
    + (UILabel *)createLabelWithFrame:(CGRect)frame Text:(NSString *)text Font:(UIFont *) font TextColor:(UIColor *)textColor BackgroundColor:(UIColor *)backgroundColor TextAlignment:(NSTextAlignment)textAlinment;
    
    /** 富文本单个keyword*/
    +(NSAttributedString *)attributeTextStr:(NSString *)text textColor:(UIColor *)textColor textFont:(UIFont *)textFont  keywordStr:(NSString *)keywordStr keywordColor:(UIColor *)keywordColor keywordFont:(UIFont *)keywordFont;
    
    /** 富文本多个keyword*/
    +(NSAttributedString *)attributeTextStr:(NSString *)text textColor:(UIColor *)textColor textFont:(UIFont *)textFont keywordStrArray:(NSArray *)keywordStrArray keywordColor:(UIColor *)keywordColor keywordFont:(UIFont *)keywordFont;
    
    
    @end
    
    /************************Define************************/
    
    #ifdef DEBUG
    #define QZLog(fmt, ...) NSLog((@"owner:QZ  %s  [Line %d] 
     " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
    #else
    #define QZLog(...)
    #endif
    
    //判断是真机还是模拟器
    #if TARGET_OS_IPHONE
    //iPhone Device
    #endif
    
    #if TARGET_IPHONE_SIMULATOR
    //iPhone Simulator
    #endif
    
    #define SYSTEM_VERSION [[[UIDevice currentDevice] systemVersion] floatValue]
    #define IS_IOS7 ([[UIDevice currentDevice].systemVersion doubleValue] >= 7.0]
    
    /** RGB颜色*/
    #define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
    #define COLOR(R, G, B, A) [UIColor colorWithRed:R/255.0 green:G/255.0 blue:B/255.0 alpha:A]
    
    #define DEVICE_HEIGHT  ([[UIScreen mainScreen] bounds].size.height)
    #define DEVICE_WIDTH   ([[UIScreen mainScreen] bounds].size.width)
    #define SCREEN_HEIGHT  DEVICE_HEIGHT
    #define SCREEN_WIDTH   DEVICE_WIDTH
    #define NavigationBar_Height 44
    
    /************************适配************************/
    #define IS_IPHONEUI   (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
    #define IS_IPADUI     (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    #define IS_IPHONE4     ((int)DEVICE_HEIGHT%480==0)
    #define IS_IPHONE5     ((int)DEVICE_HEIGHT%568==0)
    #define IS_IPAD        ((int)DEVICE_HEIGHT%1024==0)
    #define IS_IPHONE6      ((int)DEVICE_HEIGHT%667==0)
    #define IS_IPHONE6P     ((int)DEVICE_HEIGHT%736==0)
    /*
     4    inch 320*568
     4.7  inch 375*667
     5.5  inch 414*736
     */
    #define CONVERT_SCALE(x) (x)/2
    
    #define CT_SCALE_X      DEVICE_WIDTH/320.0
    #define CT_SCALE_Y      DEVICE_HEIGHT/568.0
    // 5  6  比例一致,6p 放大
    #define CT6P_SCALE_X      (IS_IPHONE6P?CT_SCALE_X:1)
    #define CT6P_SCALE_Y      (IS_IPHONE6P?CT_SCALE_Y:1)
    //转化为最低兼容设备尺寸
    #define ConvertTo5_W(x) (CONVERT_SCALE(x)*320)/375
    #define ConvertTo5_H(x) (CONVERT_SCALE(x)*568)/667
    
    #define CW(x) ConvertTo5_W(x)*CT_SCALE_X
    #define CH(x) ConvertTo5_H(x)*CT_SCALE_Y
    #define CWFor6P(x) ConvertTo5_W(x)*CT6P_SCALE_X
    #define CHFor6P(x) ConvertTo5_H(x)*CT6P_SCALE_Y
    /************************适配************************/
    
    工具方法的实现
    
    - (NSDictionary*)keyValueDic
    {
        if (!_keyValueDic) {
            NSDictionary *keyValueDic=[[NSDictionary alloc] init];
            keyValueDic = @{
                            @"key1":@"value1",
                            @"key2":@"value2",
                            @"key3":@"value3",
                            };
            _keyValueDic = keyValueDic;
        }
        return _keyValueDic;
    }
    
    +(NSString*)getCurrentTime{
        NSDateFormatter *formatter=[[NSDateFormatter alloc]init];
        [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
        NSString *dateTime=[formatter stringFromDate:[NSDate date]];
        return dateTime;
    }
    
    +(NSString*)getFormatedTime:(NSDate*)date{
        NSDateFormatter *formatter=[[NSDateFormatter alloc]init];
        [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
        NSString *dateTime=[formatter stringFromDate:date];
        return dateTime;
    
    }
    
    +(UIImage *)reSizeImage:(UIImage *)image toSize:(CGSize)reSize{
        UIGraphicsBeginImageContext(reSize);
        [image drawInRect:CGRectMake(0, 0, reSize.width, reSize.height)];
        UIImage *reSizeImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        return reSizeImage;
    }
    
    +(void)callSomebody:(NSString *)tel
    {
        NSMutableString * str=[[NSMutableString alloc] initWithFormat:@"tel:%@",tel];
        UIWebView * callWebview = [[UIWebView alloc] init];
        [callWebview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:str]]];
        [[UIApplication sharedApplication].keyWindow addSubview:callWebview];
    }
    
    + (BOOL)ifThisStringIsAnNumber:(NSString *)str
    {
        if ([self isPureInt:str] || [self isPureFloat:str]) {
            return YES;
        }
        return NO;
    }
    
    + (BOOL)isPureInt:(NSString*)string
    {
        NSScanner* scan = [NSScanner scannerWithString:string];
        int val;
        return[scan scanInt:&val] && [scan isAtEnd];
    }
    
    + (BOOL)isPureFloat:(NSString*)string
    {
        NSScanner* scan = [NSScanner scannerWithString:string];
        float val;
        return[scan scanFloat:&val] && [scan isAtEnd];
    }
    
    
    +(void)moveForwardTopVC:(UIViewController *)vc ForwardIndex:(NSInteger)index
    {
        // 直接操作nav的viewControllers栈
        NSMutableArray *stackAry=[NSMutableArray arrayWithArray:vc.navigationController.viewControllers];
    
        for (NSInteger i=vc.navigationController.viewControllers.count-1; i>=vc.navigationController.viewControllers.count-1-index; i--) {
            if(i<0) return;
            [stackAry removeObjectAtIndex:i];
        }
        [stackAry addObject:vc];
        vc.navigationController.viewControllers=[stackAry copy];
    }
    
    +(void)popToViewControllerWithVC:(UIViewController *)vc toClass:(Class)toClass animated:(BOOL)animated
    {
        for (UIViewController *controller in vc.navigationController.viewControllers) {
            if ([controller isKindOfClass:toClass]) {
                [vc.navigationController popToViewController:controller animated:animated];
            }
        }
    }
    
    +(void)createModelWithDictionary:(NSDictionary *)dict modelName:(NSString *)modelName
    {
        printf("
    @interface %s :NSObject
    ",modelName.UTF8String);
        for (NSString *key in dict) {
            NSString *type = ([dict[key] isKindOfClass:[NSNumber class]])?@"NSNumber":@"NSString";
            printf("@property (nonatomic,copy) %s *%s;
    ",type.UTF8String,key.UTF8String);
        }
        printf("@end
    ");
    
    }
    
    
    - (float) calculateStrheightWithStr:(NSString *)str Font: (UIFont *)font Width: (float) width
    {
        CGRect textRect = [str boundingRectWithSize:CGSizeMake(width, MAXFLOAT)
                                             options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading
                                          attributes:@{NSFontAttributeName:font}
                                             context:nil];
    
        return ceil(textRect.size.height);
    }
    
    - (float) calculateStrwidthWithStr:(NSString *)str Font: (UIFont *) font
    {
        CGRect textRect = [str boundingRectWithSize:CGSizeMake(MAXFLOAT, font.pointSize)
                                             options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
                                          attributes:@{NSFontAttributeName:font}
                                             context:nil];
    
        return ceil(textRect.size.width);
    }
    
    + (void)changeViewToCircle:(UIView *)view
    {
        view.layer.cornerRadius = view.bounds.size.width/2.0;
        view.clipsToBounds = YES;
    }
    
    + (void)reloadCollectionViewHeight:(UICollectionView *)collectionView
    {
        CGFloat x = collectionView.frame.origin.x;
        CGFloat y = collectionView.frame.origin.y;
        CGFloat width = collectionView.bounds.size.width;
        CGFloat height = collectionView.collectionViewLayout.collectionViewContentSize.height;
        collectionView.frame = CGRectMake(x, y, width, height);
    }
    
    +(NSAttributedString *)attributeTextStr:(NSString *)text textColor:(UIColor *)textColor textFont:(UIFont *)textFont  keywordStr:(NSString *)keywordStr keywordColor:(UIColor *)keywordColor keywordFont:(UIFont *)keywordFont
    {
        return [CommonUse attributeTextStr:text textColor:textColor textFont:textFont keywordStrArray:keywordStr?@[keywordStr]:nil keywordColor:keywordColor keywordFont:keywordFont];
    }
    
    +(NSAttributedString *)attributeTextStr:(NSString *)text textColor:(UIColor *)textColor textFont:(UIFont *)textFont keywordStrArray:(NSArray *)keywordStrArray keywordColor:(UIColor *)keywordColor keywordFont:(UIFont *)keywordFont
    {
        NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:text];
        [attr addAttributes:@{NSFontAttributeName:textFont?:[UIFont systemFontOfSize:17],NSForegroundColorAttributeName:textColor?:[UIColor blackColor]} range:NSMakeRange(0, text.length)];
        for (NSString *tempstr in keywordStrArray) {
            [attr addAttributes:@{NSFontAttributeName:keywordFont?:[UIFont systemFontOfSize:17],NSForegroundColorAttributeName:keywordColor?:[UIColor blackColor]} range:[text rangeOfString:tempstr]];
        }
        return attr;
    }
    
    /** Button Factory*/
    + (UIButton *)createButtonWithFrame:(CGRect)frame Title:(NSString *)title TitleColor:(UIColor *)titleColor BackgroundColor:(UIColor *)backgroundColor
    {
        UIButton *btn = [[UIButton alloc] init];
        btn.frame = frame;
        [btn setTitle:title forState:UIControlStateNormal];
        [btn setTitleColor:titleColor ? : [UIColor whiteColor] forState:UIControlStateNormal];
        btn.backgroundColor = backgroundColor ? :[UIColor whiteColor];
        return btn;
    }
    
    + (UIButton *)createButtonWithFrame:(CGRect)frame Title:(NSString *)title TitleColor:(UIColor *)titleColor BackgroundColor:(UIColor *)backgroundColor CornerRadius:(CGFloat)cornerRadius BorderWidth:(CGFloat)borderWidth BorderColor:(UIColor *)borderColor ImageName:(NSString *)imageName
    {
        UIButton *btn = [CommonUse createButtonWithFrame:frame Title:title TitleColor:titleColor BackgroundColor:backgroundColor];
            btn.layer.cornerRadius  = cornerRadius;
        if (borderWidth > 0) {
            btn.layer.borderWidth=borderWidth;
        }
        if (borderColor) {
            btn.layer.borderColor=[borderColor CGColor];
        }
        btn.layer.masksToBounds=YES;
        [btn setImage:[[UIImage imageNamed:imageName] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forState:UIControlStateNormal];
        return btn;
    }
    
    + (UILabel *)createLabelWithFrame:(CGRect)frame Text:(NSString *)text Font:(UIFont *) font TextColor:(UIColor *)textColor
    {
        UILabel *label = [[UILabel alloc] init];
        label.frame = frame;
        label.text = text ? :@"";
        if (font) {
            label.font = font;
        }
        if (textColor) {
            label.textColor = textColor;
        }
        return label;
    }
    
    + (UILabel *)createLabelWithFrame:(CGRect)frame Text:(NSString *)text Font:(UIFont *) font TextColor:(UIColor *)textColor BackgroundColor:(UIColor *)backgroundColor TextAlignment:(NSTextAlignment)textAlinment
    {
        UILabel *label = [CommonUse createLabelWithFrame:frame Text:text Font:font TextColor:textColor];
        if (backgroundColor) {
            label.backgroundColor = backgroundColor;
        }
        label.textAlignment = textAlinment;
        return label;
    }
  • 相关阅读:
    PTA —— 基础编程题目集 —— 函数题 —— 61 简单输出整数 (10 分)
    PTA —— 基础编程题目集 —— 函数题 —— 61 简单输出整数 (10 分)
    练习2.13 不用库函数,写一个高效计算ln N的C函数
    练习2.13 不用库函数,写一个高效计算ln N的C函数
    练习2.13 不用库函数,写一个高效计算ln N的C函数
    迷宫问题 POJ 3984
    UVA 820 Internet Bandwidth (因特网带宽)(最大流)
    UVA 1001 Say Cheese(奶酪里的老鼠)(flod)
    UVA 11105 Semiprime Hnumbers(H半素数)
    UVA 557 Burger(汉堡)(dp+概率)
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/5900062.html
Copyright © 2011-2022 走看看