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;
}
时间: 2024-10-12 09:29:47

ios设置行间距和部分文本颜色的相关文章

ios 设置UITextField的placeholder大小颜色

需求:产品嫌弃placeholder的字体太大,颜色太明显,要求跟正常输入时的字体及颜色不同 方法:设置placeholder的大小和颜色,实际上是设置placeholder的label的大小和颜色,但是当设置完之后,placeholder的字体有点偏上了,所以设置一下属性. // 设置placeholder的字体大小 [titleField setValue:[UIFont systemFontOfSize:13] forKeyPath:@"_placeholderLabel.font&quo

iOS设置导航与其标题的颜色及字体大小和系统默认TabBar的相关设置与使用方法

第一步: //在info.plist中添加一个字段:view controller -base status bar 设置为NO://导航颜色[[UINavigationBar appearance] setBarTintColor:[UIColor XXXX]];[[UITableViewCell appearance] setBackgroundColor:[UIColor XXXX]]; //设置状态栏(信号区)白色[[UIApplication sharedApplication] se

iOS 设置textfield的最大文本长度

//在现实开发中  需要控制文本输入长度 并实时做短信验证,代码如下 [self.textField addTarget:self action:@selector(codeChange:) forControlEvents:UIControlEventEditingChanged]; - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:

Label设置行间距

Label设置行间距 内容摘要 UILabel显示多行文本 UILabel设置行间距 解决单行文本 & 多行文本显示的问题 场景描述 众所周知,UILabel显示多行的话,默认行间距为0,但实际开发中,如果显示多行文本,一般情况下会有一定的行间距.如果想动态调整行间距,则需要赋值富文本属性(而不是文本属性) 问题分析 Label显示多行文本 label默认情况下,只会显示单行文本,主要是因为它的numberOfLines属性值是1:如果要显示多行,把这个属性值改成0即可. self.lblRes

Label设置行间距--b

内容摘要 UILabel显示多行文本 UILabel设置行间距 解决单行文本 & 多行文本显示的问题 场景描述 众所周知,UILabel显示多行的话,默认行间距为0,但实际开发中,如果显示多行文本,一般情况下会有一定的行间距.如果想动态调整行间距,则需要赋值富文本属性(而不是文本属性) 问题分析 Label显示多行文本 label默认情况下,只会显示单行文本,主要是因为它的numberOfLines属性值是1:如果要显示多行,把这个属性值改成0即可. self.lblResult.numberO

IOS 富文本 ,设置行间距、字间距,计算高度(转载组合而成)

一 计算高度 -(CGFloat)getSpaceLabelHeight:(NSString*)str withFont:(UIFont*)font withWidth:(CGFloat)width { NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init]; paraStyle.lineBreakMode = NSLineBreakByCharWrapping; paraStyle.alignmen

NSButton文本颜色设置和Action两种状态行为

//获取文本颜色: - (NSColor *)textColor { NSAttributedString *attrTitle = [self attributedTitle]; int len = [attrTitle length]; NSRange range = NSMakeRange(0, MIN(len, 1)); // get the font attributes from the first character NSDictionary *attrs = [attrTitle

Android中设置文本颜色的三种方法及颜色大全

原文:Android中设置文本颜色的三种方法及颜色大全 源代码下载地址:http://www.zuidaima.com/share/1550463694572544.htm 1.利于系统自带的颜色类 如TextView1.setTextColor(Android.graphics.Color.RED); 2.数字颜色表示法 TextView1.setTextColor(0xffff00ff); 3.自定义颜色 TextView1.setTextColor(this.getResources().

ExtJS4.1.1 设置表格背景颜色 修改文本颜色 在表格中插入图片

由于ExtJS版本不断更新,各种渲染方式也随之有所改变,目前大部分书籍还是停留在3版本,对于ExtJS4.1.1版本的表格渲染,设置表格行背景颜色的方式如下: 首先,定义行的样式: 1.yellow-row .x-grid-cell{ 2  background-color:#FFFF00 !important; 3         } 4  .white-row .x-grid-cell{ 5    background-color:#FFFFFF !important; 6