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

效果圖:字體

 

二、圖片和字體緊密相連、如何讓圖片和文字間有間隙呢?

修改spa

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

會把圖片前移、可是圖片顯示不全3d

效果圖:code

 

三、設置圖片間以及文字間距 

新增代碼blog

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

 
設置文字間距效果圖

 

效果並不理想,只有文字受到NSKernAttributeName屬性影響。圖片間距保持原樣。圖片

 

四、在每張圖片後面添加空格,設置空格間文字間距、解決問題

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

 效果圖:ip

 

最終採用最後一個騷操做、解決問題!it

相關文章
相關標籤/搜索