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富文本的主要内容,如果未能解决你的问题,请参考以下文章