zoukankan      html  css  js  c++  java
  • 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)];

     效果图:

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

  • 相关阅读:
    C#和sqlserver中生成新的32位GUID
    IIS7下swfupload上传大文件出现404错误
    jQuery 判断是否为数字的方法 及 转换数字函数
    js数组与字符串的相互转换方法
    jquery 中如何将数组转化为json字符串,然后再转化回来?
    Firemonkey Android 虚拟机
    Eclipse apk 签名
    win10 修改hosts
    eclipse 预览Android界面报错
    夜神模拟器
  • 原文地址:https://www.cnblogs.com/jukaiit/p/10863610.html
Copyright © 2011-2022 走看看