1. 程式人生 > >小技巧,如何在Label中顯示圖片

小技巧,如何在Label中顯示圖片

技術 body win images att 上下文 判斷 lsp 約束

這個需求其實是有的,比如QQ聊天界面裏面發送的信息,可以用label來顯示文字(也可以用button顯示),但是有時候用戶可能會發送圖片。如果能讓Label遇到文字就顯示文字,遇到圖片就顯示圖片就好了。可能有的人會說用Quartz2D,直接在Label的drawinrect 裏面用上下文畫上去。但這感覺太刻意去弄了,而且比較麻煩。

如果你不是在董鉑然博客園看到本文,請點擊查看原文

推薦一種用Label系統的屬性來做。

1 2 3 4 5 6 7 8 9 10 UIImage *image = [UIImage imageNamed:@"321.jpg"]; // 1> 生成文本附件
NSTextAttachment *textAttach = [[NSTextAttachment alloc] init]; textAttach.image = image; // 2> 使用文本附件創建屬性文本 NSAttributedString *strA = [NSAttributedString attributedStringWithAttachment:textAttach]; self.lblChat.attributedText = strA;

裏面的lblChat是一個成員變量 在storyboard裏拖得一個label。

所有人都知道label.Text 但應該不是全都知道label.attributedText

使用文本附件給label的屬性文本賦值。

技術分享 技術分享

賦值前和賦值後的對比(如果想做到大小隨自己定得話就需要增加判斷添加約束)

小技巧,如何在Label中顯示圖片