【原】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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章