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

 效果圖:

 

最終采用最后一個騷操作、解決問題!

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM