我刚刚遇到了一个奇怪的问题,我有一个具有动态高度的自定义 tableview 单元格。虽然测试这一切似乎工作正常,但现在我正在将真实内容加载到其中似乎存在一些问题。
似乎某些文本不会触发 UILabel 中的新行
正确:http ://dl.dropbox.com/u/274185/Screen%20Shot%202012-05-09%20at%201.15.21%20PM.png 错误:http://dl.dropbox.com/u/274185 /屏幕%20Shot%202012-05-09%20at%201.15.30%20PM.png
正如您在错误示例中看到的那样,文本被推到了第二行,但标签的高度仍然只计算一行。
item.project = @"另一个标题更长的测试项目(管理员/项目管理)";
item.project = @"测试项目(管理员/项目管理)";
我计算高度的方式是这样的:
// when creating the cell
cell.projectLabel.lineBreakMode = UILineBreakModeWordWrap;
cell.projectLabel.numberOfLines = 0;
[cell.projectLabel sizeToFit];
// in heightForRowAtIndexPath()
CGSize projectHeight = [item.project sizeWithFont:[UIFont boldSystemFontOfSize:13.0f] constrainedToSize:CGSizeMake(320.0f, CGFLOAT_MAX) lineBreakMode: UILineBreakModeWordWrap];
我尝试更改 lineBreakMode,但这似乎没有多大帮助
编辑:计算文本高度时出现问题,我使用了固定的 320 点,这是不正确的,在使用实际宽度后,高度计算正确。
CGSize projectHeight = [item.project sizeWithFont:[UIFont boldSystemFontOfSize:13.0f] constrainedToSize:CGSizeMake(cell.projectLabel.bounds.size.width, CGFLOAT_MAX) lineBreakMode: UILineBreakModeWordWrap];