美文网首页iOS基础
关于Swift中图文混排NSAttributedString

关于Swift中图文混排NSAttributedString

作者: 骑着雅迪小毛驴上班的老瞿 | 来源:发表于2017-11-11 19:43 被阅读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;

    ```

    相关文章

      网友评论

        本文标题:关于Swift中图文混排NSAttributedString

        本文链接:https://www.haomeiwen.com/subject/hcwauttx.html