うーん、これは完全に奇妙に聞こえます。私は過去 3 時間かけて修正に費やしてきました。2 つのラベルを含むカスタム セルを含むテーブル ビューがあります。ラベルの高さは変数であり、メソッドを使用して計算されます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];
テーブル ビューの最初の読み込みでは、すべてのセルが 1 行だけで表示されます。テーブルビューをスクロールする(またはプログラムでテーブルビューを「再度」リロードする)場合にのみ、ラベルが修正されます。なぜそれをしているのかわからない?nibからロードされたカスタムセル内にありますcellPrefixLabel
。cellDetailsLabel
両方持っていますnumberOfLines = 0
アップデート
- 私は Auto-Layout を使用していませんが、まだ iOS 5 をサポートしています。
- アプリケーションは iOS 6 で正常に動作し、バグは iOS 7 ベータ 6 にのみ存在します! ベータ版のせい?このようなことに直面する人はいますか?
- sizeToFit を削除しましたが、同じ問題が存在します。実際、sizeToFit はまったく役に立たず、iOS 6 では必要ありません。