AttributedString 图片间距问题

 

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

效果图:

 

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

修改

vipImageAttachment.bounds = CGRectMake(-5, 0, 13, 15);

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

效果图:

 

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

新增代码

[vipStr addAttribute:NSKernAttributeName value:@(10) range:NSMakeRange(0, vipStr.length)];

 
设置文字间距效果图

 

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

 

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

    //设置空格文本
    [vipStr insertAttributedString:[[NSAttributedString alloc] initWithString:@" "] atIndex:1];
    //设置间距
    [vipStr addAttribute:NSKernAttributeName value:@(8)
                        range:NSMakeRange(1,1)];

 效果图:

 

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

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值