我有一个字符串,我想在一个表格单元格的标签,以显示两个可能的宽度,我需要计算使表格单元格的高度正确记录的高度。然而,不管我为约束尺寸做什么,我都会得到相同的高度,这在我想要的情况下是不正确的。我正在使用的代码:为什么sizeWithFont:constrainedToSize:lineBreakMode:返回大小不正确?
CGFloat width = 300.0f;
NSString * value = @"LongText LongText LongText LongText LongText LongText";
CGSize contentSize = [value sizeWithFont: [UIFont systemFontOfSize: 14.0f]
constrainedToSize: CGSizeMake(width, CGFLOAT_MAX)
lineBreakMode: UILineBreakModeWordWrap];
当我检查contentSize变量时,宽度为252,高度为36,这是预期的。但是,如果不是300.0fi将222.0f插入到宽度变量中,则宽度为189,但高度仍然为36,并且只有前4个LongText字样显示在2行上(第三行似乎在某些情况下被切断计算)。有谁知道为什么会发生这种情况?
如果您使用的是UITextView,请在这里查看我的答案:http://stackoverflow.com/questions/2330939/sizewithfont-doesnt-give-correct-height-for-uitextview-if-there-is -a-long-strin/15408198#15408198 – domsom