在iOS应用中我们经常看到一段文字里面有文字图片可能我们可以使用lable加imageView的方式显示,但是这种不是最好的方式,下面来介绍下如何使用NSAttributedString来实现这种图文混排的效果1
```
// attachMent - 附件
NSTextAttachment* attachment = [[NSTextAttachmentalloc]init];
attachment.image= [UIImageimageNamed:@"compose_emoticonbutton_background_highlighted"];
// 提示lineheight 大致和字体的大小相等
CGFloatheight =self.label.font.lineHeight;
// 设置本身的bounds属性,可以显示的时候就会显示多大相对于自己本身的来讲,其实这里这里进行了微调,本来图片会上移
attachment.bounds=CGRectMake(0, -4, height, height);
// 图像字符串
NSAttributedString*imageStr = [NSAttributedStringattributedStringWithAttachment:attachment];
// 3定义一个可变的属性字符串
NSMutableAttributedString* attrstrM = [[NSMutableAttributedStringalloc]initWithString:@"我jkhjkhhjg"];
// 修改富文本中的不同文字的样式
[attrstrMaddAttribute:NSForegroundColorAttributeNamevalue:[UIColorblueColor]range:NSMakeRange(0,5)];
[attrstrMaddAttribute:NSFontAttributeNamevalue:[UIFontsystemFontOfSize:20]range:NSMakeRange(0,5)];
[attrstrMappendAttributedString:imageStr];
NSAttributedString* text = [[NSAttributedStringalloc]initWithString:@"123"];
[attrstrMappendAttributedString:text];
// 设置属性文本
self.label.attributedText= attrstrM;
```
网友评论