Label根據內容來顯示單行還是多行


我所遇到的情況是,產品讓顯示一個Message,最多兩行顯示,多余的用...代替,但是這個Message有可能是一行顯示也有可能是兩行顯示,如果直接按照label兩行填寫,如果內容是一行的時候label就會居中顯示,這是一個蛋疼的問題.怎么來解決呢?

話不多說,上代碼:

NSString *messageString = _detailModel.message;
    CGSize maximumLabelSizeOne = CGSizeMake(200,115/2-20);//200為我需要的UILabel的長度,后面的參數是label的最大高度,這樣可以控制多出來的用...顯示
    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];
    paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
    NSDictionary *attributes = @{NSFontAttributeName:[UIFont systemFontOfSize:13], NSParagraphStyleAttributeName:paragraphStyle.copy};
    CGSize size = [messageString boundingRectWithSize:maximumLabelSizeOne options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil].size;
    
    UILabel *messageLabel = [[UILabel alloc] initWithFrame:CGRectMake(12.5, 10, 200, size.height)];
    messageLabel.text = messageString;
    messageLabel.textAlignment  = 0;
    messageLabel.numberOfLines = 2;
    messageLabel.font = [UIFont systemFontOfSize:13];
    messageLabel.textColor = [TncTool colorWithHexString:@"666666"];
    [messageView addSubview:messageLabel];

這樣就可以實現label的高度適配問題...


免責聲明!

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



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