Почему мой sizeWithFont: constrainedToSize: lineBreakMode: всегда возвращает ноль? - PullRequest
4 голосов
/ 30 августа 2009

Я пытаюсь создать UITableViewCell, который регулирует свою высоту в зависимости от длины отображаемой строки, но я зацикливаюсь на этом методе.

Вот что у меня есть:

NSString *text = @"A really long string in here";
CGSize theSize = [text sizeWithFont:[UIFont boldSystemFontOfSize:18.0f] constrainedToSize:CGSizeMake(265.0f, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];
NSString *stringHeight = [NSString stringWithFormat:@"%d", theSize.height];

Независимо от того, stringHeight отображается как 0. Чего мне не хватает?

Спасибо!

Ответы [ 2 ]

11 голосов
/ 30 августа 2009

CGFloat с соответствуют типу данных C float; правильный формат для них: %f:

 NSString *text = @"A really long string in here"; 
 CGSize theSize = [text sizeWithFont:[UIFont boldSystemFontOfSize:18.0f] constrainedToSize:CGSizeMake(265.0f, CGFLOAT_MAX) lineBreakMode:UILineBreakModeWordWrap];
 NSString *stringHeight = [NSString stringWithFormat:@"%f", theSize.height];

Кроме того, вы должны использовать CGFLOAT_MAX вместо MAXFLOAT

5 голосов
/ 11 марта 2011

Вы также можете использовать

NSStringFromCGSize(theSize);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...