码迷,mamicode.com
首页 > 其他好文 > 详细

属性化字符串的使用

时间:2014-04-29 10:23:46      阅读:279      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   width   

如果我们要在label或者textView上显示一段文字,比如:“y = ax2 + bx +c”,我们预想的结果是这样的

mamicode.com,码迷

即让一个label或者textView上显示的文本能展示多种颜色,这时候属性化字符串就显得非常有用了。

-(NSAttributedString *)getFormulaAttributedTextWithStr:(NSString *)str

//这个传入进来的str就是我们要展示多种颜色的文本“y = ax2 + bx +c”

{

    NSMutableAttributedString *attributedStr = [[NSMutableAttributedStringalloc] initWithString:str];//首先创建NSMutableAttributedString类型的串

    

    UIColor *firstColor = [colorArray objectAtIndex:0];

    UIColor *secondColor = [colorArray objectAtIndex:1];

    UIColor *thirdColor = [colorArray objectAtIndex:2];//获得要展示的颜色

    

    NSArray *array = [str componentsSeparatedByString:@" "];

 

    int length = (int)[[array objectAtIndex:0] length] + (int)[[array objectAtIndex:1] length] + 2 * 1;

    NSRange oneRange = NSMakeRange(length,[[array objectAtIndex:2] length] - 2);//获得a在字符串中的位置和长度

    int twolenth;

    NSRange twoRange = NSMakeRange(twolenth, (int)[[array objectAtIndex:4length] - 1);//获得b在字符串中的位置和长度

 

//以下三条addAttributed代码即是为指定位置的字符串添加颜色属性

    [attributedStr addAttribute:(NSString *)NSForegroundColorAttributeName

                          value:(id)firstColor.CGColor

                          range:oneRange];

    [attributedStr addAttribute:(NSString *)NSForegroundColorAttributeName

                          value:(id)secondColor.CGColor

                          range:twoRange];

    [attributedStr addAttribute:(NSString *)NSForegroundColorAttributeName

                              value:(id)thirdColor.CGColor

                             range:NSMakeRange([str length]-[[array lastObject] length],[[array lastObject] length])];

    

    return attributedStr;

}

属性化字符串的使用,码迷,mamicode.com

属性化字符串的使用

标签:style   blog   http   color   使用   width   

原文地址:http://www.cnblogs.com/guatiantian/p/3698634.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!