UILabel我們都知道在內容盛不下的時候末尾就會顯示...
但是當你給UILabel設置AttributedString的時候就會發現,雖然內容盛不下,但是最后的...也是沒有的
這可能是AttributedString設置以后UILabel原本的設置就不生效了(包括字體,字體顏色等屬性)
如果你想要顯示...如要手動再給UILabel設置截斷模式
NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:@"倫敦的地標建築之一是一條橫跨泰晤士河的大橋,於1984年通車.橋的升降過去采用蒸汽機結構.橋的打開為了讓高的船通過的景象wgqrgqwrfrgqwe"]; NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc] init]; label.numberOfLines = 0; //paragraph.lineSpacing = 20; //paragraph.paragraphSpacing = 20; NSDictionary *attributes = @{NSFontAttributeName:[UIFont systemFontOfSize:17.0f],NSParagraphStyleAttributeName:paragraph}; [string addAttributes:attributes range:NSMakeRange(0, string.length)]; [label setAttributedText:string]; label.lineBreakMode = NSLineBreakByTruncatingTail;
在設置完AttributedText之后設置lineBreakMode才會生效,如果你在后續的代碼中重新設置了AttributedText,那你需要重新設置lineBreakMode,否則Label的lineBreakMode會被覆蓋掉,不出現...
如果你嫌上面的方法麻煩,還有一種解決方式就是使用
NSMutableParagraphStyle里面也有一個lineBreakMode也可以設置截斷模式,這個是直接添加在AttributedString里面的,所以不需要設置UILabel的lineBreakMode了