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)];
效果圖:
最終采用最后一個騷操作、解決問題!