ios设置行间距和部分文本颜色

Posted ha_cjy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios设置行间距和部分文本颜色相关的知识,希望对你有一定的参考价值。

/**
*  设置行间距和字间距
*
*  @param lineSpace 行间距
*  @param kern      字间距
*
*  @return 富文本
*/
-(NSMutableAttributedString *)getAttributedStringWithLineSpace:(NSString *) text lineSpace:(CGFloat)lineSpace kern:(CGFloat)kern {
    NSMutableParagraphStyle * paragraphStyle = [NSMutableParagraphStyle new];
    //调整行间距
    paragraphStyle.lineSpacing= lineSpace;
    paragraphStyle.alignment = NSTextAlignmentLeft;
    paragraphStyle.lineSpacing = lineSpace; //设置行间距
    paragraphStyle.firstLineHeadIndent = 30.0;//设置第一行缩进
    NSDictionary*attriDict =@{NSParagraphStyleAttributeName:paragraphStyle,NSKernAttributeName:@(kern)};
    NSMutableAttributedString * attributedString = [[NSMutableAttributedString alloc] initWithString:text attributes:attriDict];
    
    return attributedString;
}

/**
 *  富文本部分字体设置颜色
 *
 *  @param text 文本
 *  @param highlightText  设置颜色的文本
 *
 *  @return 富文本
 */
- (NSMutableAttributedString *)setupAttributeString:(NSString *)text highlightText:(NSString *)highlightText {
    NSRange hightlightTextRange = [text rangeOfString:highlightText];
    NSMutableAttributedString *attributeStr = [[NSMutableAttributedString alloc] initWithString:text];
    if (hightlightTextRange.length > 0) {
        [attributeStr addAttribute:NSForegroundColorAttributeName
                             value:[HBPlistResourceUtil colorWithName:@"mainColor"]
                             range:hightlightTextRange];
        [attributeStr addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:15.0f] range:hightlightTextRange];
        return attributeStr;
    }else {
        return [highlightText copy];
    }
}

 两者结合:

/**
*  设置行间距、字间距和文本颜色
*
*  @param lineSpace 行间距
*  @param kern      字间距
*  @param colorText 设置颜色的文本
*
*  @return 富文本
*/
-(NSMutableAttributedString *)getAttributedStringWithLineSpace:(NSString *) text lineSpace:(CGFloat)lineSpace kern:(CGFloat)kern colorText:(NSString *) colorText{
    NSMutableParagraphStyle * paragraphStyle = [NSMutableParagraphStyle new];
    //调整行间距
    paragraphStyle.lineSpacing= lineSpace;
    paragraphStyle.alignment = NSTextAlignmentLeft;
    paragraphStyle.lineSpacing = lineSpace; //设置行间距
    paragraphStyle.firstLineHeadIndent = 30.0;//设置第一行缩进
    NSDictionary*attriDict =@{NSParagraphStyleAttributeName:paragraphStyle,NSKernAttributeName:@(kern)};
    
    NSRange colorTextRange = [text rangeOfString:colorText];
    NSMutableAttributedString *attributeStr = [[NSMutableAttributedString alloc] initWithString:text];
    //设置文本颜色
    [attributeStr addAttribute:NSForegroundColorAttributeName
                         value:[HBPlistResourceUtil colorWithName:@"mainColor"]
                         range:colorTextRange];
    [attributeStr addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:15.0f] range:colorTextRange];
    [attributeStr addAttributes:attriDict range:NSMakeRange(0, [text length])];
    
    return attributeStr;
}

 

以上是关于ios设置行间距和部分文本颜色的主要内容,如果未能解决你的问题,请参考以下文章

iOS--UILabel设置行距和字间距,并根据文本计算高度

通过富文本的方式添加行间距和字间距

iOS之富文本

CSS设置行间距和字间距

UILabel设置行间距和字间距并计算高度-b

CSSCSS 文本样式 ④ ( CSS 外观属性 | color 文本颜色 | text-align 文本对齐方式 | line-height 行间距设置 | 首行缩进设置 | 文本装饰设置 )