Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iphone : sizeWithFont method does not identify the '\n' from string

I am using below code to calculate the size for the label for a string.

    NSString * str = @"It's \n that \n don't \n";
    CGSize size = [str sizeWithFont:[UIFont fontWithName:@"Verdana" size:12.5] forWidth:300  
     lineBreakMode:UILineBreakModeWordWrap];
    NSLog(@"Height : %f   Width : %f ",size.height,size.width);

But id does not consider \n characters from the string to change the line. When I display this string on a label and set it numberOfLines property to some 4 or 5 , label does consider the \n and go to the next line. How can I calculate the height for the lable considering the \n's from the string. Please help me .

Thank You !!!

like image 343
Bharat Jagtap Avatar asked May 24 '11 13:05

Bharat Jagtap


1 Answers

Try this:

NSString * str = @"It's \n that \n don't \n";
CGSize size = [str sizeWithFont:[UIFont fontWithName:@"Verdana" size:12.5] constrainedToSize:CGSizeMake(300.0f, 999999.0f)];
NSLog(@"Height : %f   Width : %f ",size.height,size.width);

This give me Height : 48.000000 Width : 40.000000, but be sure to set the number of line in the label to 0.

like image 190
rckoenes Avatar answered Nov 15 '22 10:11

rckoenes