關於UILabel設置AttributedString以后末尾...不出現的問題


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了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM