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;
    }
  • 相关阅读:
    Python大婶博客汇总
    DevOps之零停机部署
    DevOps之持续交付
    DevOps工具链
    DevOps的概念
    敏捷开发
    自动化运维
    tomcat优化
    java 集合专练
    java匿名内部类,多态,接口练习
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/5900062.html
Copyright © 2011-2022 走看看