Adjust UILabel height depending on the text

cocoa-touch, ios, uikit, uilabel

Solution

`sizeWithFont constrainedToSize:lineBreakMode:` is the method to use. An example of how to use it is below:

//Calculate the expected size based on the font and linebreak mode of your label
// FLT_MAX here simply means no constraint in height
CGSize maximumLabelSize = CGSizeMake(296, FLT_MAX);

CGSize expectedLabelSize = [yourString sizeWithFont:yourLabel.font constrainedToSize:maximumLabelSize lineBreakMode:yourLabel.lineBreakMode];   

//adjust the label the the new height.
CGRect newFrame = yourLabel.frame;
newFrame.size.height = expectedLabelSize.height;
yourLabel.frame = newFrame;

Problem

Consider I have the following text in a `UILabel` (a long line of dynamic text): Since the alien army vastly outnumbers the team, players must use the post-apocalyptic world to their advantage, such as seeking cover behind dumpsters, pillars, cars, rubble, and other objects. I want to resize the `UILabel's` height so that the text can fit in. I'm using following properties of `UILabel` to make the text within to wrap. ``` myUILabel.lineBreakMode = UILineBreakModeWordWrap; myUILabel.numberOfLines = 0; ``` Please let me know if I'm not heading in the right direction. Thanks.

Original source

Related problems