关于iOS富文本使用

Posted 超越ME

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于iOS富文本使用相关的知识,希望对你有一定的参考价值。

通过使用富文本进行一条字符串的不同字体,不同字间距,不同颜色的的设置

下面介绍一些关于设置段落属性相关的key值

NSParagraphStyleAttributeName           key:设置文本段落,value: NSParagraphStyle 对象

NSFontAttributeName                          key:字体属性,默认值:value :字号  

NSForegroundColorAttributeNam          key:字体颜色,value: UIColor对象,默认值为黑色  

NSBackgroundColorAttributeName       key:字体所在区域背景颜色,value: UIColor对象,默认值为nil(透明色 )

NSLigatureAttributeName                     key:连体属性,value:NSNumber 对象,0 表示没有连体字符,1 表示使用默认的连体字符  (整数)

NSKernAttributeName                         key:字符间距,value: NSNumber对象 ,正值间距加宽,负值间距变窄  (整数)

NSStrikethroughStyleAttributeName      key:删除线,value: NSNumber 对象 (整数)

NSStrikethroughColorAttributeName      key:删除线颜色,value: UIColor 对象,默认值为黑色  

NSUnderlineStyleAttributeName           key:下划线,value: NSNumber 对象,枚举常量 (整数)

NSUnderlineColorAttributeName           key:下划线颜色,value: UIColor 对象,默认值为黑色  

NSStrokeWidthAttributeName              key:笔画宽度,value: NSNumber 对象,负值填充,正值无效果  (整数)

NSStrokeColorAttributeName              key:填充部分颜色,value:取值为 UIColor 对象  

NSExpansionAttributeName               key:文本横向拉伸属性,value: NSNumber ,正横拉伸,负横压缩  (浮点数)

NSWritingDirectionAttributeName        key:文字书写方向,value:从左向右书写或者从右向左书写  

NSVerticalGlyphFormAttributeName    key:文字排版方向,value: NSNumber 对象(整数),0 横排,1 竖排  

NSLinkAttributeName                         key:链接属性,value:URL地址  

NSAttachmentAttributeName              key:文本附件,value:NSTextAttachment对象(图片混排)

 NSShadowAttributeName                   key:阴影属性,value: NSShadow 对象  

 NSTextEffectAttributeName                key:文本特殊效果,value: NSString 对象 

 NSBaselineOffsetAttributeName          key:基线偏移值,value:NSNumber ,正上负下  (浮点数)

 NSObliquenessAttributeName             key:字形倾斜度,value: NSNumber ,正右负左  (浮点数)

1.下面是实例代码

我封装了一个方法可以直接进行调用

- (void)label:(UILabel *)label AndWithText:(NSString *)text AndFont:(UIFont *)font AndLeftColor:(UIColor *)leftColor AndRightColor:(UIColor *)rightColor andNumber:(long)number AndLeftRangeNummber:(NSInteger)leftNumber{

    //创建富文本

    NSMutableAttributedString * labelString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@",text]] ;

    //富文本的字体

    [labelString addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, labelString.length)];

    //富文本左边的字体颜色

    [labelString addAttribute:NSForegroundColorAttributeName value:kScriptGrayColor range:NSMakeRange(0, leftNumber)];

    //富文本右边的字体颜色

    [labelString addAttribute:NSForegroundColorAttributeName value:kScriptBlackColor range:NSMakeRange(leftNumber,labelString.length-leftNumber)];

    //设置富文本左边的字间距

    CFNumberRef num = CFNumberCreate(kCFAllocatorDefault,kCFNumberSInt8Type,&number);

    [labelString addAttribute:(id)kCTKernAttributeName value:(__bridge id)num range:NSMakeRange(0,leftNumber-2)];

    CFRelease(num);

    

    [label setAttributedText:labelString];

}

 

2.比如说你想创建一个带有富文本的字符串可以直接进行方法的调用

[self label:self.hospitalLabel AndWithText:@"医院:123" AndFont:[UIFont fontWithName:kFontPingFangMedium size:kFitFontSize(13)] AndLeftColor:kScriptGrayColor AndRightColor:kScriptBlackColor andNumber:20.0f AndLeftRangeNummber:3];

3.实现的具体实例图片如下:

利用段落的属性,有关于设置动态计算行高的时候

CGSize size = [string boundingRectWithSize:CGSizeMake(MAXFLOAT, MAXFLOAT)                                                     options:NSStringDrawingUsesLineFragmentOrigin                                                  attributes:@{NSFontAttributeName:font,                                                               NSParagraphStyleAttributeName :style}                                                     context:nil].size;

NSParagraphStyleAttributeName是设置段落风格

具体的使用方法

1.创建段落设置的相关对象

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

2.字体的行间距

paragraphStyle.lineSpacing = 10; 

3.对齐方式

paragraphStyle.alignment = NSTextAlignmentJustified;

4.首行缩进

paragraphStyle.firstLineHeadIndent = 20.0f;

5.文本的省略方式

paragraphStyle.lineBreakMode = NSLineBreakByTruncatingTail;

6.最大行高限制

paragraphStyle.maximumLineHeight = 30;

7.最小行高限制

 paragraphStyle.minimumLineHeight = 10;

8.整体进行缩进

paragraphStyle.headIndent = 5;

9.尾部缩进

paragraphStyle.tailIndent = 5;

10.段头留白

paragraphStyle.paragraphSpacingBefore = 10.0f;

11.书写方向

paragraphStyle.baseWritingDirection = NSWritingDirectionLeftToRight;

12.支持0、1

paragraphStyle.hyphenationFactor = 1;

 

以上是关于关于iOS富文本使用的主要内容,如果未能解决你的问题,请参考以下文章

IOS - WebView富文本开发

iOS开发 UIlabel完美封装 富文本的使用

iOS富文本

iOS 富文本样式总结

ios富文本的简单使用 AttributedString

vue-quill-editor富文本工具增强模块的使用