设置字符串的属性

来源:互联网 发布:斗地主出牌算法 编辑:程序博客网 时间:2024/06/07 05:56

/**

 *  可以让一个label显示两种不同颜色,字体不同大小

 *

 *  @param parentString    父字符串

 *  @param subString 需要改变颜色的子字符串

 *  @param color     颜色

 *  @param size 字体大小

 *

 *  @return 处理后带属性的字符串

 */

- (NSMutableAttributedString*)fn_get_different_color_inLabel:(NSString*)parentString colorString:(NSString*)subString color:(UIColor*)color fontSize:(CGFloat)size{

    NSMutableAttributedString *_parentString=[[NSMutableAttributedStringalloc]initWithString:parentString];

   NSRange subStr_range=[parentString rangeOfString:subString];

    NSMutableDictionary *idic_strProperty=[NSMutableDictionarydictionary];

    [idic_strPropertysetObject:color forKey:NSForegroundColorAttributeName];

    [idic_strPropertysetObject:[UIFontsystemFontOfSize:size] forKey:NSFontAttributeName];

    [_parentStringsetAttributes:idic_strProperty range:subStr_range];

   return _parentString;

}

/**

 *  在原带有属性的字符串中拼接新的带属性的字符串

 *

 *  @param parentString 原带有属性的字符串

 *  @param subString    新加属性的子串

 *  @param color        颜色

 *  @param size         字体大小

 *

 *  @return 处理后带属性的字符串

 */

- (NSMutableAttributedString*)fn_append_withAttributedString_inLabel:(NSMutableAttributedString*)parentString subString:subString color:(UIColor*)color fontSize:(float)size{

   NSMutableString *_parentString=[[NSMutableStringalloc]initWithString:[parentStringstring]];

    [_parentStringappendString:subString];

   NSMutableAttributedString *appended_parentString=[selffn_get_different_color_inLabel:_parentString colorString:subString color:color fontSize:size];

    [appended_parentStringreplaceCharactersInRange:[_parentString rangeOfString:[parentString string]] withAttributedString:parentString];

   NSRange parentStr_range=[_parentString rangeOfString:subString];

    NSMutableDictionary *idic_strAttribute=[NSMutableDictionarydictionary];

    [idic_strAttributesetObject:color forKey:NSForegroundColorAttributeName];

    [idic_strAttributesetObject:[UIFontsystemFontOfSize:size] forKey:NSFontAttributeName];

    [appended_parentStringsetAttributes:idic_strAttribute range:parentStr_range];

   return appended_parentString;

}


/**

 *  可以让一个label显示多种不同颜色,字体多种不同大小

 *

 *  @param parentString    父字符串

 *  @param subString 需要改变颜色的子字符串

 *  @param color     颜色

 *  @param size 字体大小

 *

 *  @return 处理后带属性的字符串

 */

- (NSMutableAttributedString*)fn_get_multiple_color_inLabel:(NSMutableAttributedString*)parentString colorString:(NSString*)subString color:(UIColor*)color fontSize:(CGFloat)size{

   NSRange subStr_range=[[parentString string] rangeOfString:subString];

    NSMutableDictionary *idic_strProperty=[NSMutableDictionarydictionary];

    [idic_strPropertysetObject:color forKey:NSForegroundColorAttributeName];

    [idic_strPropertysetObject:[UIFontsystemFontOfSize:size] forKey:NSFontAttributeName];

    [parentStringsetAttributes:idic_strProperty range:subStr_range];

   return parentString;

}


0 0
原创粉丝点击