我正在尝试创建一个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
。我错过了什么?
谢谢!
答案 0 :(得分:11)
CGFloat
s对应于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
答案 1 :(得分:5)
您也可以使用
NSStringFromCGSize(theSize);