I'm developing an iPhone app with latest SDK and XCode 4.2
I'm using this code to align vertically a text set it previously in an UILabel. Here is the code:
- (void)resizeLabel:(UILabel *)label
{
CGSize maximumLabelSize = label.frame.size;
CGSize expectedLabelSize = [label.text sizeWithFont:label.font
constrainedToSize:maximumLabelSize
lineBreakMode:label.lineBreakMode];
//adjust the label the the new height.
CGRect newFrame = label.frame;
NSLog(@"NumLines: %d, OldWidth: %f, NewWidth: %f, OldHeight: %f, newHeight: %f", label.numberOfLines, maximumLabelSize.width, expectedLabelSize.width, maximumLabelSize.height, expectedLabelSize.height);
newFrame.size.height = expectedLabelSize.height;
label.frame = newFrame;
}
For text: "Iglesia de la Merced" I get:
NumLines: 2, OldWidth: 205.000000, NewWidth: 153.000000, OldHeight: 39.000000, newHeight: 21.000000
For text: "Antiguo convento de los merdarios" I get
NumLines: 2, OldWidth: 205.000000, NewWidth: 187.000000, OldHeight: 39.000000, newHeight: 42.000000
Both are set up to use two lines but text is always drawn in one line only.
Why am I getting double height when expectedLabelSize.width
is smaller than maximumLabelSize.width
?