Label有text這個(gè)文本屬性,要做到富文本效果锰茉,就需要用到富文本屬性attributedText(textView呢蔫、textField、UIButton中都有這個(gè)屬性)
使用方法:
為某一范圍內(nèi)文字設(shè)置多個(gè)屬性
- (void)setAttributes:(NSDictionary *)attrs range:(NSRange)range;
為某一范圍內(nèi)文字添加某個(gè)屬性
- (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)range;
為某一范圍內(nèi)文字添加多個(gè)屬性
- (void)addAttributes:(NSDictionary *)attrs range:(NSRange)range;
移除某范圍內(nèi)的某個(gè)屬性
- (void)removeAttribute:(NSString *)name range:(NSRange)range;
常見(jiàn)的屬性及說(shuō)明
NSFontAttributeName 字體
NSParagraphStyleAttributeName 段落格式
NSForegroundColorAttributeName 字體顏色
NSBackgroundColorAttributeName 背景顏色
NSStrikethroughStyleAttributeName刪除線格式
NSUnderlineStyleAttributeName 下劃線格式
NSStrokeColorAttributeName 刪除線顏色
NSStrokeWidthAttributeName刪除線寬度
NSShadowAttributeName 陰影
先看下效果圖:
富文本實(shí)現(xiàn)方法:
1飒筑、聲明屬性:
@property(nonatomic,strong)UILabel*lblTest;//對(duì)象
@property(nonatomic,strong)NSMutableAttributedString*attri;//富文本對(duì)象
@property(nonatomic,strong)NSTextAttachment*attch;
2片吊、初始化富文本對(duì)象并設(shè)置樣式
//初始化Label
self.lblTest= [[UILabelalloc]initWithFrame:CGRectMake(0,0,280,40)];
self.lblTest.center=self.view.center;
self.lblTest.text=@"啤酒飲料礦泉水123456";
self.lblTest.textAlignment=1;
[self.viewaddSubview:self.lblTest];
//初始化富文本對(duì)象
self.attri= [[NSMutableAttributedStringalloc]initWithString:self.lblTest.text];
//修改富文本中的不同文字的樣式
[self.attriaddAttribute:NSForegroundColorAttributeNamevalue:[UIColorgreenColor]range:NSMakeRange(7,6)];//字體顏色
[self.attriaddAttribute:NSForegroundColorAttributeNamevalue:[UIColorblueColor]range:NSMakeRange(0,3)];//字體顏色
[self.attriaddAttribute:NSFontAttributeNamevalue:[UIFontsystemFontOfSize:20]range:NSMakeRange(0,7)];//字體大小
3、用label的attributedText屬性來(lái)使用富文本
// 用label的attributedText屬性來(lái)使用富文本
self.lblTest.attributedText = self.attri;
這時(shí)實(shí)現(xiàn)的效果是這樣的:
實(shí)現(xiàn)圖文混排:
步驟:
-創(chuàng)建NSTextAttachment的對(duì)象协屡,用來(lái)裝在圖片
-將NSTextAttachment對(duì)象的image屬性設(shè)置為想要使用的圖片
-設(shè)置NSTextAttachment對(duì)象bounds大小俏脊,也就是要顯示的圖片的大小
-用[NSAttributedString attributedStringWithAttachment:attch]方法,將圖片添加到富文本上
//初始化NSTextAttachment對(duì)象
self.attch = [[NSTextAttachment alloc]init];
//設(shè)置frame
self.attch.bounds = CGRectMake(0, 0, 40, 40);
//設(shè)置圖片
self.attch.image = [UIImage imageNamed:@"源聲-Logo"];
// 創(chuàng)建帶有圖片的富文本
NSAttributedString *string = [NSAttributedString attributedStringWithAttachment:(NSTextAttachment *)(self.attch)];
//插入到第幾個(gè)下標(biāo)
[self.attri insertAttributedString:string atIndex:0];
//添加到尾部
[self.attri appendAttributedString:string];
// 用label的attributedText屬性來(lái)使用富文本
self.lblTest.attributedText = self.attri;
demo分享:鏈接: http://pan.baidu.com/s/1geKmEGF 密碼: iyz8