How to add line break for UILabel?

后端 未结 21 2179
失恋的感觉
失恋的感觉 2020-11-29 14:53

Let see that I have a string look like this:

NSString *longStr = @\"AAAAA\\nBBBBB\\nCCCCC\";  

How do I make it so that the UILabel disp

21条回答
  •  醉酒成梦
    2020-11-29 15:21

    Use \n as you are using in your string.

    Set numberOfLines to 0 to allow for any number of lines.

    label.numberOfLines = 0;

    Update the label frame to match the size of the text using sizeWithFont:. If you don't do this your text will be vertically centered or cut off.

    UILabel *label; // set frame to largest size you want
    ...
    CGSize labelSize = [label.text sizeWithFont:label.font
                              constrainedToSize:label.frame.size
                                  lineBreakMode:label.lineBreakMode];
    label.frame = CGRectMake(
        label.frame.origin.x, label.frame.origin.y, 
        label.frame.size.width, labelSize.height);
    

    Update : Replacement for deprecated

    sizeWithFont:constrainedToSize:lineBreakMode:

    Reference, Replacement for deprecated sizeWithFont: in iOS 7?

    CGSize labelSize = [label.text sizeWithAttributes:@{NSFontAttributeName:label.font}];
    
    label.frame = CGRectMake(
        label.frame.origin.x, label.frame.origin.y, 
        label.frame.size.width, labelSize.height);
    

提交回复
热议问题