UILabel 設置了 attributedText 后省略號不顯示

在開發中,對于一個 UILabel 我們都會設置 lineBreakMode 屬性。
我在開發中就遇到個比較有意思的問題,所以就寫了這篇博客,與大家共勉!

對于一個 UILabel ,我先設置了 self.titleLbl.lineBreakMode = NSLineBreakByTruncatingTail ,然后設置了 attributedText 內容,就是為了讓超出顯示范圍的內容顯示成省略號。

但是現象卻是,在內容足夠多的的情況下,內容是被直接切掉無法顯示的內容,并沒有顯示省略號,如下圖:


bug截圖.png

好了,bug來了,各種Google,原來是在設置 attributedText 的時候,之前設置的 lineBreakMode 會失效,所以出現上述的問題。

問題解決辦法:
在設置 attributedText 后,在對 lineBreakMode 進行一下設置,這樣就會出現想要的結果了。

具體代碼如下:

NSAttributedString * attrStr = [[NSAttributedString alloc] initWithData:[model.title dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
self.titleLbl.attributedText = attrStr;
self.titleLbl.lineBreakMode = NSLineBreakByTruncatingTail;
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容