好吧,这听起来很奇怪,我在过去的 3 个小时里一直在尝试修复它。我有一个包含两个标签的自定义单元格的表格视图。标签高度是变量,使用方法计算sizeWithFont:constrainedToSize:lineBreakMode
。
cell = [tableView dequeueReusableCellWithIdentifier:sCellIdentifier];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.tariffPlanCellContentView.cellPrefixLabel.text = [NSString stringWithFormat:sPrefixStringWithColon, [self getPrefixStringAtIndexPath:indexPath]];
cell.tariffPlanCellContentView.cellPrefixLabel.textAlignment = UITextAlignmentLeft;
cell.tariffPlanCellContentView.cellPrefixLabel.frame = CGRectMake(cell.tariffPlanCellContentView.cellPrefixLabel.frame.origin.x,
cell.tariffPlanCellContentView.cellPrefixLabel.frame.origin.y,
kTableViewCellLabelWidth,
[self getSizeForPrefixStringAtIndexPath:indexPath].height);
cell.tariffPlanCellContentView.cellDetailsLabel.text = [self getDetailStringAtIndexPath:indexPath];
cell.tariffPlanCellContentView.cellDetailsLabel.frame = CGRectMake(cell.tariffPlanCellContentView.cellDetailsLabel.frame.origin.x,
cell.tariffPlanCellContentView.cellPrefixLabel.frame.origin.y + cell.tariffPlanCellContentView.cellPrefixLabel.frame.size.height + 3,
kTableViewCellLabelWidth,
[self getSizeForDetailsStringAtIndexPath:indexPath].height);
[cell.tariffPlanCellContentView.cellPrefixLabel sizeToFit];
[cell.tariffPlanCellContentView.cellDetailsLabel sizeToFit];
在第一次加载表格视图时,所有单元格仅显示一行。只有当我滚动表格视图(或以编程方式“再次”重新加载表格视图)时,标签才是固定的!我不知道它为什么这样做?cellPrefixLabel
并且cellDetailsLabel
位于从 nib 加载的自定义单元格内。都有numberOfLines = 0
更新
- 我没有使用自动布局,我仍然支持 iOS 5。
- 该应用程序在 iOS 6 上运行良好,该错误仅在 iOS 7 beta 6 上!是因为beta版本吗?有没有人面临这样的事情?
- 我删除了 sizeToFit 并且存在同样的问题。事实上,sizeToFit 根本没有帮助,iOS 6 也不需要它。