欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

AttributedString 图片间距问题

程序员文章站 2022-04-15 15:56:25
1.NSMutableAttributedString如何显示图片 效果图: 2、图片和字体紧密相连、如何让图片和文字间有间隙呢? 修改 会把图片前移、但是图片显示不全 效果图: 3、设置图片间以及文字间距 新增代码 设置文字间距效果图 设置文字间距效果图 效果并不理想,只有文字受到NSKernAt ......

 

1.nsmutableattributedstring如何显示图片

    nsmutableattributedstring *vipstr = [[nsmutableattributedstring alloc]initwithstring:@"点击解锁【超级方法】"];

    uiimage *vipimage = [uiimage imagenamed:@"worddetailnor解锁"];

    nstextattachment *vipimageattachment = [[nstextattachment alloc]init];

    vipimageattachment.image = vipimage;

    vipimageattachment.bounds = cgrectmake(0, 0, 13, 15);
 
    nsattributedstring *vipimageattrstr = [nsattributedstring attributedstringwithattachment:vipimageattachment];

    [vipstr insertattributedstring:vipimageattrstr atindex:0];

    //设置字体和设置字体的范围

    [vipstr addattribute:nsfontattributename value:[uifont systemfontofsize:15.0f] range:nsmakerange(0, vipstr.length)];

    [self.notelabel setattributedtext:vipstr];

效果图:

AttributedString 图片间距问题

 

2、图片和字体紧密相连、如何让图片和文字间有间隙呢?

修改

vipimageattachment.bounds = cgrectmake(-5, 0, 13, 15);

会把图片前移、但是图片显示不全

效果图:

AttributedString 图片间距问题

 

3、设置图片间以及文字间距 

新增代码

[vipstr addattribute:nskernattributename value:@(10) range:nsmakerange(0, vipstr.length)];

 
设置文字间距效果图

AttributedString 图片间距问题

 

效果并不理想,只有文字受到nskernattributename属性影响。图片间距保持原样。

 

4、在每张图片后面添加空格,设置空格间文字间距、解决问题

    //设置空格文本
    [vipstr insertattributedstring:[[nsattributedstring alloc] initwithstring:@" "] atindex:1];
    //设置间距
    [vipstr addattribute:nskernattributename value:@(8)
                        range:nsmakerange(1,1)];

 效果图:

AttributedString 图片间距问题

 

最终采用最后一个骚操作、解决问题!