在開發中,對於一個 我們都會設置 屬性。 我在開發中就遇到個比較有意思的問題,所以就寫了這篇博客,與大家共勉! 對於一個 ,我先設置了 ,然後設置了 內容,就是為了讓超出顯示範圍的內容顯示成省略號。 但是現象卻是,在內容足夠多的的情況下,內容是被直接切掉無法顯示的內容,並沒有顯示省略號,如下圖: 好 ...
在開發中,對於一個 UILabel
我們都會設置 lineBreakMode
屬性。
我在開發中就遇到個比較有意思的問題,所以就寫了這篇博客,與大家共勉!
對於一個
UILabel
,我先設置了self.titleLbl.lineBreakMode = NSLineBreakByTruncatingTail
,然後設置了attributedText
內容,就是為了讓超出顯示範圍的內容顯示成省略號。
但是現象卻是,在內容足夠多的的情況下,內容是被直接切掉無法顯示的內容,並沒有顯示省略號,如下圖:
好了,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;