UILable富文本

Posted

tags:

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

参考技术A 富文本

NSString*str =@"人生若只如初见,何事秋风悲画扇。\n等闲变却故人心,却道故人心易变。\n骊山语罢清宵半,泪雨霖铃终不怨。\n何如薄幸锦衣郎,比翼连枝当日愿。";NSMutableAttributedString*attrStr = [[NSMutableAttributedStringalloc] initWithString:str];

attrStr添加字体和设置字体的范围

[attrStraddAttribute:NSFontAttributeName                value:[UIFontsystemFontOfSize:30.0f]                range:NSMakeRange(0,3)];

attrStr添加文字颜色

[attrStraddAttribute:NSForegroundColorAttributeName                value:[UIColorredColor]                range:NSMakeRange(17,7)];

attrStr添加下划线

[attrStr addAttribute:NSUnderlineStyleAttributeNamevalue:[NSNumbernumberWithInteger:NSUnderlineStyleSingle]                range:NSMakeRange(8,7)];

段落样式

NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc] init];//行间距paragraph.lineSpacing =10;//段落间距paragraph.paragraphSpacing =20;//对齐方式paragraph.alignment = NSTextAlignmentLeft;//指定段落开始的缩进像素paragraph.firstLineHeadIndent =30;//调整全部文字的缩进像素paragraph.headIndent =10;

attrStr添加段落设置

[attrStr addAttribute:NSParagraphStyleAttributeNamevalue:paragraph                range:NSMakeRange(0, [str length])];NSString*urlStr =@"www.南瓜瓜.com";NSURL*url = [NSURLURLWithString:urlStr];

label添加链接

注意:label链接是可以显示出来,但是点不了,有兴趣的朋友可以试试。查资料发现textView是可以点击的,有shouldInteractWithURL代理方法回调。

[attrStraddAttribute:NSLinkAttributeName                value:url                range:NSMakeRange(42,7)];

创建label

UILabel*label = [[UILabelalloc] initWithFrame:CGRectMake(60,100,200,0)];label.backgroundColor= [UIColorlightGrayColor];//自动换行label.numberOfLines=0;//设置label的富文本label.attributedText= attrStr;//label高度自适应[label sizeToFit];[self.viewaddSubview:label];

设置sizeToFit之后是可以取出label的高度的,这样做label高度自适应。

CGFloatheight = label.frame.size.height;NSLog(@"height = %f",height);

iOS富文本

参考技术A 在iOS上能进行文本显示的控件有UILable,UITextField,UITextView。然而这些控件本身对文本的展现方式很单一,通常仅仅能够控制字体样式、大小、颜色、加粗、斜体等等,而对于行距控制,字距控制,段落控制等高级功能却无能为力。

而iOS7的发布,苹果又引入了TextKit,TextKit是一个快速而又现代化的文字排版和渲染引擎。

TextKit并没有新增类,只是在原有的文本显示控件上进行了封装,可以在平时我们最喜欢使用的UILabel,UITextField,UITextView等控件里面使用,其最主要的作用就是为程序提供文字排版和渲染的功能

富文本注意:
先设置的先显示,后设置的,如果和先设置的样式不一致,是会覆盖的,富文本的设置具有先后顺序。
不要忽略了空格也是一个字符。
建议使用灵活的好用的NSMutableAttributedString,不要使用NSAttributedString。
富文本基本使用方法的思路概要

1、创建一个NSMutableAttributedString富文本对象(一般不用NSAttributedString)
2、设置addAttribute属性
(1) addAttribute: 一个属性
(2) addAttributes: 一个存储多个属性的属性字典,比如这个字典可以是:
NSDictionary *attrDic = @
NSFontAttributeName: [UIFont fontWithName: @"Zapfino" size: 15],
NSForegroundColorAttributeName: [UIColor blueColor]
;
3、控件.attributedText = 富文本对象(和控件.txt = NSString文本对象不一样的)

制作富文本,你可能会有一些定制的需求,比如图片的高度不想每个都要设置一边,你可以写一个继承,然后将下面方法重写

替换文本内容里面的字符为图片

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

iOS-Swift3富文本(UILable文本图文混排)

iOS富文本

iOS之富文本

Laya 富文本 HtmlDivElement

富文本编辑器怎么用

富文本编辑器中<br/>啥操作