2016至2017年上半年iOS项目细节(3)

来源:互联网 发布:哪里有呼死你软件出售 编辑:程序博客网 时间:2024/06/13 23:37

文字高度的frame各有优势

   1)最好计算高度 

    CGRect frame =[string boundingRectWithSize:CGSizeMake(控件宽, 控件最大高度)options:NSStringDrawingUsesLineFragmentOrigin |NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:字体}context:nil]

  

     2)计算宽度

  CGSize size =  [String sizeWithAttributes:@{字体}];

  

下面是格式化字符串处理, 格式化字符串针对一些文本当中不同的显示很有帮助大笑

/**

 <#Description#>


 @param num <#num description#>

 @return <#return value description#>

 */

+(NSString *)phoneShow:(NSString *)num

{

    

    if (nil!=num && num.length ==11) {

        NSString * pref = [numsubstringToIndex:3];

        NSString * tails = [numsubstringFromIndex:7];

        

        return [NSStringstringWithFormat:@"%@***%@",pref,tails];

    }else{

        

        if (num.length >0) {

            return num;

        }

        

        return@"";

    }

    

}


/**

 对象 nil 判断输出字符串

 

 @param obj

 @return 默认

 */

+(NSString *)textCheck:(NSObject *)obj{

    

   

    if ([obj isKindOfClass:[NSString class]]) {

        NSString *text = (NSString *)obj;

        if ([@"null" isEqualToString:text] || [@"" isEqualToString:text] || text.length == 0) {

            return@"";

        }else{

            return  text;

        }

    }

    if ([obj isKindOfClass:[NSNumber class]]) {

        if (nil==obj) {

            return@"";

        }

    }

    if (nil==obj) {

        return @"";

    }

    return [NSString stringWithFormat:@"%@",obj];

}


/**

 <#Description#>格式化字符串,字符串里的秘密


 @param originStr <#originStr description#>

 @param text <#text description#>

 @param font <#font description#>

 @param color <#color description#>

 @param paragraphStyle <#paragraphStyle description#>

 @param lineSpacing <#lineSpacing description#>

 @return <#return value description#>

 */

+(NSMutableAttributedString *)originStr:(NSString *)originStr attributedString:(NSString *)text font:(UIFont *)font textColor:(UIColor *)color paragraphStyle:(NSMutableParagraphStyle *) paragraphStyle lineSpacing:(double)lineSpacing{

    NSMutableAttributedString * attributedString = [[NSMutableAttributedString alloc] initWithString:originStr];

    if (font) {

        [attributedString addAttribute:NSFontAttributeName value:font range:NSMakeRange([[attributedString string] rangeOfString:text].location, [text length])];


    }

    if (color) {

        [attributedString addAttribute:NSForegroundColorAttributeName value:color range:NSMakeRange([[attributedString string] rangeOfString:text].location, [text length])];


    }

    if (lineSpacing >0) {

        NSMutableParagraphStyle * style = [[NSMutableParagraphStyle alloc] init];

        [style setLineSpacing:8.0/kUISize];

        [attributedString addAttribute:NSParagraphStyleAttributeName value:style range:NSMakeRange(0,[originStr length])];

    }

    return attributedString;

}


// 富文本不处理  进行格式化字符串

+(NSMutableAttributedString*)showHtmlString:(NSString *)text{

    return [[NSMutableAttributedString alloc] initWithData:[[ProductTools textCheck:text] dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType} documentAttributes:nil error:nil];

}

//对富文本处理  只输出  文本

+(NSString *)showHtmlTextString:(NSString *)html{

    NSScanner * scanner = [NSScanner scannerWithString:html];

    NSString * text = nil;

    while([scanner isAtEnd]==NO)

    {

        [scanner scanUpToString:@"<" intoString:nil];

        [scanner scanUpToString:@">" intoString:&text];

        html = [html stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"%@>",text] withString:@""];

    }

    return html;

}



原创粉丝点击