iOS基础

关于Swift中图文混排NSAttributedString

2017-11-11  本文已影响0人  骑着雅迪小毛驴上班的老瞿

在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;

```

上一篇下一篇

猜你喜欢

热点阅读