How do I get -[NSString sizeWithFont:forWidth:lineBreakMode:] to work?
cocoa-touch
Solution
That height is in pixels. I expect it's truncating, i.e. giving you the metrics you'd see if you set this text on a UILabel with 1 line.
Try using `sizeWithFont:constrainedToSize:` and just give it `MAXFLOAT` for the height component of the size.
Problem
I updated my question "Sizing a UILabel (in the iPhone SDK) to fit?" with a description of my problem with a suggested solution, but didn't get an answer. Perhaps I'll have better results by asking a new question... I set a breakpoint after the following code: ``` NSString *theText = @"When in the Course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth, the separate and equal station to which the Laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation."; CGSize theSize = [theText sizeWithFont:[UIFont systemFontOfSize:17.0f] forWidth:260.0 lineBreakMode:UILineBreakModeWordWrap]; ``` `theSize.height` is 21 and `theSize.width` is 231. What am I doing wrong? That height can't be in pixels nor in number of lines. Note that `[UIFont systemFontOfSize:17.0f]` is meant to specify the default font. Update: I changed the code to: ``` CGSize constraintSize; constraintSize.width = 260.0f; constraintSize.height = MAXFLOAT; NSString *theText = @"When in the Course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth, the separate and equal station to which the Laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation."; CGSize theSize = [theText sizeWithFont:[UIFont systemFontOfSize:17.0f] constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap]; ``` `theSize.height` is 273. That seems more like it.